
回答问题我正在尝试制作一个小型公共交通路线应用程序。我的数据以以下结构表示:graph {A: {B:3, C:5}, B: {C:2, D:2}, C: {D:1}, D: {C:3}, E: {F:8}, F: {C:2}}在哪里:1.graph dict key是一个节点key 是2个节点之间的一条边value 是一个边权重此处描述的算法, 我正在使用, 然而因递归, 它相当慢, 且不支持权重。因此, 我转而来到大卫爱泼斯坦所描绘的算法之处, 甚至在评论里能找到关于heapq使用的更优实现。它运行状况优秀, 速度极为迅速, 然而我所获取的仅是最佳路线, 并非所有潜在路线的清单, 这便是我执着不放的所在之处。有没有人能够帮我把这个问题给解决掉, 或者起码是给一个方向呢? 我对于图最短路径算法这方面并不是很擅长。提前致谢!勿庸置疑,图里面会存在大量的最短路径, 进而, 在满足时间复杂度的情形下生成全部最短路径是相当困难的, 然而, 我能够给你一个简易的办法, 借此能够获取尽可能多的最短路径。算法1、从起点运行算法,得到disS列出, 从起点到i点的最短距离。而后, 从终点开始运行, 算法, 得到disT。列表(终点到点 i 的最短距离)2、新建图:对于原图中的一条边,如果disS disT w(a, b) disS