![]() |
1
96
将对象的ID存储在映射到特定对象的哈希表中。枚举所有对象,找到它们的父对象(如果存在),并相应地更新它的父指针。
|
![]() |
2
27
根据梅尔达德阿夫沙里的回答和安德鲁·汉伦关于加速的评论,这是我的看法。 与原始任务的重要区别:根节点的id==parentid。
|
![]() |
3
26
下面是一个简单的javascript算法,用于将一个平面表解析为n次运行的父/子树结构:
|
![]() |
4
7
Python溶液
例如:
生产:
|
![]() |
5
5
JS版本,返回一个根或一个根数组,每个根数组都将具有包含相关子数组的子数组属性。不依赖有序的输入,适当地压缩,并且不使用递归。享受!
|
![]() |
6
2
在这里找到了一个很棒的javascript版本: http://oskarhane.com/create-a-nested-array-recursively-in-javascript/ 假设您有这样的数组:
您希望像这样嵌套对象:
这里是一个递归函数,可以实现它。
Usuage:
|
![]() |
7
1
在我看来,这个问题很模糊,我可能会创建一个从ID到实际对象的映射。在伪Java中(我没有检查它是否工作/编译),它可能有点像:
查找每个家长:
通过重用
|
![]() |
8
1
我用C语言编写了一个通用的解决方案,大致基于@mehrdad afshari答案:
|
![]() |
9
1
对于任何对Eugene解决方案的C版感兴趣的人,请注意 节点列表 是作为地图访问的,因此请改用字典。 请记住,此解决方案仅在 桌子 被排序 亲本 .
节点定义如下。
|
![]() |
10
0
你只使用那些属性吗?如果不是,那么最好创建一个子节点数组,在该数组中,您可以循环使用所有这些对象一次来构建这些属性。从那里,选择具有子节点但没有父节点的节点,并从上到下迭代地构建树。 |
![]() |
11
0
我可以用4行代码和O(n log n)时间来完成这项工作,假设字典类似于treemap。
编辑 : 好吧,现在我读到一些parentid是假的,所以忘记上面的内容,这样做:
|
![]() |
12
0
大多数答案都假设您希望在数据库之外进行此操作。如果您的树本质上是相对静态的,并且您只需要以某种方式将树映射到数据库中,那么您可能需要考虑在数据库端使用嵌套集表示。Joe Celko(或
here
以获取Celko的概述)。
|
![]() |
13
0
这与询问者所寻找的并不完全相同,但我很难将我的头绕在这里提供的含糊不清的答案周围,我仍然认为这个答案适合标题。
我的答案是将一个平面结构映射到一个直接位于对象树上的对象树,其中您所拥有的就是
|
![]() |
14
0
下面是Ruby实现: 它将按属性名或方法调用的结果分类。
|
![]() |
15
0
下面是Mehrdad Afshari的Java解决方案。
|
![]() |
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 6 月前 |
![]() |
Alisa Petrova · 在有向图中更改一对顶点以创建循环 6 月前 |
![]() |
b39b332d · 使用C++标准库实现高效间隔存储 10 月前 |
![]() |
Paul C · 在维基百科上,将二叉搜索树转换为排序链表的算法是否存在错误? 10 月前 |
![]() |
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 10 月前 |
![]() |
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 10 月前 |