【发布时间】:2023-03-04 22:40:01
【问题描述】:
我有一个数据集,其中包含以下形式的对象:
A -> Some parent (E.g. A -> null)
B -> Some parent (E.g. B -> D)
C -> Some parent (E.g. C -> A)
D -> Some parent (E.g. D -> null)
E -> Some parent (E.g. E -> A)
F -> Some parent (E.g. F -> G)
G -> Some parent (E.g. G -> D)
H -> Some parent (E.g. H -> C)
I -> Some parent (E.g. I -> G)
J -> Some parent (E.g. J -> null)
我想要所有分组的链表,如下所示:
A <- C <- H
^-E
J
D <- B
^- G <- F
^- I
是否有一种通用算法来解决对单链表进行分组的问题,该算法的性能优于纯暴力破解?
这里的用例是,给定G,我怎样才能得到:
D <- B
^- G <- F
^- I
以一种有效的方式。
【问题讨论】:
-
你的输入数据结构是什么?
-
每个数据结构都是一个对象,包含一个ID、一些数据和另一个对象的ID。
-
好的,但是您的整体数据结构是什么?例如:它是一个数组吗? (我真正想知道的是:给定一个对象的ID,你能不能高效的找到那个对象对应的入口?)
-
是的,我可以使用对象的 ID 并使用该 ID 访问地图中的数据和指针。
标签: algorithm grouping hierarchy singly-linked-list