运行Dijkstra算法的生成树?

时间:2014-02-12 10:29:26

标签: algorithm data-structures

只需要确认一下: 当我在图表上运行Dijkstra的算法时,最后我会有一棵生成树吗? (不一定是最小生成树)

那么Dijkstra和PRIM / Kruskal之间的区别在于后两种算法将返回最小生成树?

由于

1 个答案:

答案 0 :(得分:1)

你是正确的,只有一个条件 - 图形应该有一个来自源的生成树(即 - 图中的每个顶点v都有一个来自给定源的路径)。
另外,正如@Henry评论的那样 - 你应该继续算法,直到找到所有顶点的路径,并且一旦达到目标就不要“停止”。

另请注意,Dijkstra算法(一般来说 - 最短路径求解器)是针对有向图定义的,而MST通常用于无向图。
(注意,很容易将每个无向图定义为有向图 - 只需在无向图中为每条边{u,v}添加(u,v)和(v,u))