0

我有大量对象以树状结构排列(树上的每个节点都有父节点和子节点,从一个主节点开始,到许多子节点结束)。每个对象都有自己的字符串形式的 ID,并且有许多重复的 ID,但没有重复的 ID 会在同一个父对象下分开。例子:

家长甲:

  • 孩子A
  • 孩子B
  • 儿童D

家长乙:

  • 孩子A
  • 儿童C
  • 儿童D

这棵树也很深。

我需要一种查找像这样工作的对象的方法(示例基于上一个列表):

示例 1:

  1. 带有字符串 {"childB"} 的 ArrayList 被传递给算法
  2. 没有 ID 为“childB”的重复节点,因此返回对 childB 的引用

示例 2:

  1. 带有字符串 {"parentA", "childD"} 的 ArrayList 被传递给算法
  2. 没有 ID 为“childD”的重复节点和 ID 为“parentA”的父节点,因此返回对给定节点的引用

示例 3:

  1. 带有字符串 {"childD"} 的 ArrayList 被传递给算法
  2. 存在 ID 为“childD”的重复节点,因此算法要求提供更多信息(父节点的名称)

请记住,可能有许多级别的特异性,例如 {"nodeA", "nodeD", "nodeX", "nodeD"} 所以需要某种循环,或者可能需要递归方法。

那么,有什么想法吗?

更新:我创建了一个深度优先搜索算法来遍历树上的每个节点,并且效果很好。该算法以一个 ArrayList 的形式返回所有节点我现在需要的只是一种基于不同程度的特异性选择一个节点的方法。任何人都可以帮忙吗?上面三个例子说明了我需要什么。

4

1 回答 1

-1

深度优先搜索算法可能对你有帮助!!!

于 2012-07-14T10:19:09.597 回答