存储最短路径
Storing the shortest path
我指的是本教程: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];
您应该向下一个节点矩阵添加一个赋值。
相关文章:
- 内存效率表示最短路径的方法?
- 用于查找网格中最短路径的算法
- 查找最短路径算法
- BFS 打印最短路径
- 使用 Dijkstra 算法跟踪两个节点之间的最短路径
- 使用C++具有两个数字的最短路径算法.(C++)
- 使用迭代深度优先搜索算法的未加权图的最短路径
- 如何仅在 2 个节点之间获取最短路径,给定邻接列表有向图?
- 如何使用贝尔曼-福特算法返回所有具有捆绑重量的最短路径?
- 使用优先级队列查找所有与 Dijkstra 相同的最短路径
- 尝试在图形中查找最短路径时的无限循环
- C++计算有向图中的最短路径
- 使用BFS存储和打印最短路径
- 如何制作由原始图形的最短路径边组成的新图形
- 有没有一种方法可以使用弗洛伊德-沃歇尔算法给出最短路径,其中存在负权重循环而不允许重叠边缘?
- 加权图的开始和结束的最短路径
- 使 c++11 Dijkstra 实现返回最短路径
- 弗洛伊德最短路径算法C++
- Dijkstra 最短路径算法性能 std::p riority_queue VS std::set.
- 存储最短路径