我有一个网络节点映射,我需要在两点之间建立一个节点列表。一开始对我来说听起来很简单,但答案是让我不知所措:(
给出(简化)数据结构:
Id Name LeftId RightId
1 Skagway 3
2 Klukwan 3
3 Haines 2 4
4 Juneau 3 5
5 Petersburg 4 6
6 Wrangell 5 7
7 Kasaan 6 4
8 Portage 4 6
如何构建算法(或者您可以建议算法)来构建遍历节点并构建两点之间所有节点的列表?这棵树大多是线性的,除了少数几个没有的地方。
他们希望能够从分支或叶端开始识别节点。
答案 0 :(得分:2)
如果它是从一个节点到另一个节点的路径,我建议您在子树上使用预先排序,其中包含您希望路径记录的起始节点的根节点。 更新:事实上,人工智能算法(以及图中的搜索路径)也可能有用。例如,非常简单的一个,BFS可能是有用的。