存储最短路径

Storing the shortest path

本文关键字:最短路径 存储      更新时间:2023-10-16

我指的是本教程:http://www.geeksforgeeks.org/dynamic-programming-set-16-floyd-warshall-algorithm/

作者提到:

我们还可以通过将前置信息存储在单独的2D矩阵中来修改解决方案以打印最短路径。

我有点困惑于这个前身信息是什么。

那么,我该如何存储路径以便稍后显示呢?

如果要重建从节点x_1到x_n的路径,可以通过转到节点x_2并重建从x_2到x_n。如果x_1改变,则从x_2到x_n的路径不会改变。因此,当从x_1到x_n时,您要存储的是关于下一个节点的信息。这可以用|V|x|V|矩阵来完成,其中条目[i][j]给出从i到j的路径上的下一个节点的索引。

在这部分代码

if (dist[i][k] + dist[k][j] < dist[i][j])
    dist[i][j] = dist[i][k] + dist[k][j];

您应该向下一个节点矩阵添加一个赋值。