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

Algorithm 对Dijkstras最短路径和MST感到困惑,algorithm,dijkstra,minimum-spanning-tree,Algorithm,Dijkstra,Minimum Spanning Tree,Dijkstra的最短路径算法应该像我的教科书《算法入门》中那样返回一棵树吗?在我在线看到的示例中,它只显示了两个顶点之间的最短路径。在我的教科书中,它返回一个边连接到每个顶点的树。我很困惑 这取决于你正在使用的教科书:Dijkstra的算法解决了单源最短路径问题,如果你正在计算这些路径或它们的长度,那么将每个顶点的前一个存储在最短路径中并不是很多额外的工作。因此,根据来源和应用程序,您可能会阅读以下内容: DijkstraParents(G,s),返回图G中从s到任何其他顶点的最短路径中每个

Dijkstra的最短路径算法应该像我的教科书《算法入门》中那样返回一棵树吗?在我在线看到的示例中,它只显示了两个顶点之间的最短路径。在我的教科书中,它返回一个边连接到每个顶点的树。我很困惑

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

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

最后,所有这些版本都是主算法的微小变化,因此请使用适合您需要的版本。

您能否提供更详细的信息,例如,您在网上看到的示例Dijkstra的算法返回路径或路径长度,而不是树。它探索的顶点形成一个由源(不是MST)的最短路径组成的树,但该树不会以任何方式返回。也许这棵树就是你课本上的插图。