如何在dijkstra算法中保存最短路径
因此,首先让我们定义Dijkstra算法:
Dijkstra的算法在具有非负边权重的有向图中找到单源最短路径。
我想知道如何使用 算法将最短路径形式s保存到t 。
我在Google上进行了搜索,但找不到任何特别的内容;我也更改了Dijkstra算法,但无法得到任何答案。如何使用
保存从s到t的最短路径?
我知道我的问题是基本的和不专业的,但是任何帮助将不胜感激。感谢您考虑我的问题。
回答:
如果您从给出的Wikipedia链接中查看伪代码,则会在其中看到一个名为的数组prev[]
。对于图中的每个节点
与 之间最短路径中的 节点 。(此数组也称为 数组或
数组。) ***
换句话说, 和 之间 最短路径是:
s -> u -> vwhere u = prev[v]
从 到 的路径之间可能有多个节点,因此要重构从 到 的路径,您只需prev[]
使用主伪代码(
为 )下面的代码片段沿数组定义的路径返回:
1 S ← empty sequence2 u ← target
3 while prev[u] is defined: // Construct the shortest path with a stack S
4 insert u at the beginning of S // Push the vertex onto the stack
5 u ← prev[u] // Traverse from target to source
6 end while
以上是 如何在dijkstra算法中保存最短路径 的全部内容, 来源链接: utcz.com/qa/426857.html