我有一个循环有向图。下面是用python dict表示的图
graph = {
'A': {'B': 5, 'D': 5, 'E': 7 },
'B': {'C': 4},
'C': {'D': 8, 'E': 2},
'D': {'C': 8, 'E': 6},
'E': {'B': 3}
}
我写了一个Dijkstra最短路径的简单实现。这似乎对两点都有效。下面是我的实现。在
^{pr2}$现在这个简单的实现似乎起作用了。例如,如果我这样做
shortestpath('A', 'C')
它会给我路径和最短的重量
(9, ['A', 'B', 'C'])
在这种情况下。
{cd1>但是只要程序中断。
现在有一条从B to B
的最短路径,因为它是一个循环图,路径是B-C-E-B。我只是不知道如何检查它,并相应地修改Dijktra的算法,让它检查像这样的循环情况。如有任何建议,我们将不胜感激。谢谢:)
目前没有回答
相关问题 更多 >
编程相关推荐