对Dijkstras最短路径和MST感到困惑

时间:2019-04-10 01:25:12

标签: algorithm dijkstra minimum-spanning-tree

Dijkstra的最短路径算法是否应该像我的教科书介绍算法那样返回一棵树?在网上看到的示例中,它仅显示了两个顶点之间的最短路径。在我的教科书中,它返回一棵树,其边缘连接到每个顶点。我很困惑。

1 个答案:

答案 0 :(得分:0)

这取决于您使用的教科书:Dijkstra的算法解决了单源最短路径问题,并且如果要计算这些路径或其路径,则将每个顶点的前任存储在最短路径中并不是很多额外的工作。反正长度。因此,根据来源和应用程序,您可能会读到以下内容:

  • DijkstraParents(G,s),它返回从s到图G中任何其他顶点的最短路径中每个顶点的父级;
  • DijkstraTree(G,s),可以使用DijkstraParents(G,s)的结果返回实际的最短路径树;
  • DijkstraPath(G,s,t),可以使用DijkstraParents(G,s)或DijkstraTree(G,s)的结果显式返回从s到t的最短路径;
  • ...等,包括使用上述方法计算纯路径长度。

最后,所有这些版本都是主算法的次要变体,因此请使用适合您需求的任何一种。