如何在最短时间内从加权树中的一个节点到所有其他节点获取路径?

时间:2017-07-13 21:01:19

标签: algorithm graph tree computer-science

我只想从每个节点获取源节点的距离。但它与图形问题不同,因为它是一棵树,每个节点之间的路径是唯一的,所以我希望答案能够在更有效的时间内完成。 是否有可能在有效的时间内得到答案?

2 个答案:

答案 0 :(得分:1)

你是绝对正确的,在树中,找到两个节点之间的路径的难度远低于一般图形,因为一旦找到任何路径(至少,一个没有周期)你知道它是最短的。所以你要做的就是找到从给定节点开始并到达每个其他节点的所有路径。您可以使用时间O(n)中的深度优先搜索或广度优先搜索来执行此操作。要查找长度,只需跟踪您在旅行时沿着路径看到的边缘长度。

答案 1 :(得分:-1)

与“图形问题”不同:树是图的特例。 Dijkstra's algorithm是图遍历的标准。只需稍微修改一下:保留所有路径长度,并且不要担心比较更新步骤,因为您将保留所有结果。继续,直到用完节点进行检查,并且有路径长度。