我有一个网络节点映射,我需要在两点之间建立一个节点列表。起初对我来说听起来很简单,但答案却让我无法:(
给定以下(简化的)数据结构:
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
如何构建算法(或者您可以建议一种算法)来构建遍历节点并在两点之间构建所有节点的列表?这棵树大多是线性的,除了少数不是线形的地方。
他们希望能够识别从分支或叶端开始的节点。
如果它是从一个节点到另一个节点的路径,我建议您在子树上使用预排序,其中包含您希望路径从中记录的起始节点的根节点。更新:事实上,人工智能算法(以及图表中的搜索路径)也可能有用。例如,非常简单的BFS可能会有用。