【发布时间】:2013-12-05 00:40:35
【问题描述】:
我有一棵看起来像的加权树(权重在括号中)
A1
/ \
B1(3) B2(2)
/ \ / \
C1(1) C2(3) C3(4)
/ \ / \ / \
D1(8) D2(7) D3(2) D4(5)
......
所以,每个节点都有两个孩子。每个节点与一个邻居节点共享一个子节点。树的深度可能非常高。
3 + 1 + 8 = 12
3 + 1 + 7 = 11
3 + 3 + 7 = 13 ... and so on
找到最短路径的最佳方法是什么?因此,我不需要权重的总和,而是完整的路径(比如说 A1-B2-C3-D3)。
如果您能向我推荐正确的算法,我将非常高兴。或者提供 java/伪代码解决方案。
谢谢!
更新
我正在寻找从上到下的完整路径
【问题讨论】:
-
您是在寻找任意两个顶点之间的最短路径,还是从根节点开始的最短路径?
-
这不是一棵树。一棵树在任意两个顶点之间应该只有一条路径。这基本上是一个二维网格。