【发布时间】:2013-06-26 05:07:24
【问题描述】:
我必须为我的项目写一个algorithm。以下是问题
一种树状结构,仅公开一个功能,即**getAllChildNodes**,它返回特定节点的所有子节点。
现在我得到了一个 Nodes 数组,我只需要保留其中最顶层的父节点。
示例:假设有 3 棵树
Tree 1 : P1 has two children C11 & C12
Tree 2 : P2 has 1 children C21, and C21 has 2 child C22, C23
Tree 3 : P3 has 2 Children C31 and C32
Now if given an array say { C11, C21, C22 , P1, P3, C32}
The expected result is { C21, P1 , P3 }
如果我需要更多信息,请告诉我。
更多信息: 我首先获取数组第一个元素的所有子元素,然后与数组的其余元素进行比较,并且与每个元素类似。但这有更多的复杂性..即n * n * getAllChildNodes。我来这里是为了更好的建议
【问题讨论】:
-
我正在尝试首先获取数组第一个元素的所有子元素,然后与数组的其余元素进行比较,但这更复杂..即 nn i>getAllChildNodes。我来这里是为了更好的建议
-
你能得到另一个函数,比如getParentNode(childNode)吗?如果你能得到它,那么只需拥有所有子节点的 parentNodes 并简单地删除重复项。
-
没有这种方法可用
标签: java arrays algorithm data-structures tree