邻接矩阵实现Dijkstra算法

3
我有一个由2D数组表示的有向无环图的邻接矩阵:
[[0, 4, 3, 0]
 [0, 0, 0, 1]
 [0, 3, 0, 1]
 [2, 0, 0, 0]]

有没有一个Python模块或快速的代码片段可以在这种数据类型上运行Dijkstra算法? Python cookbook使用优先级字典,但我真的很想将它保留在2D数组中。 任何帮助都将不胜感激。


Dijkstar 是否符合您的需求? - akaIDIOT
1个回答

10

networkx或许适合你的需求:

import networkx as nx
import numpy as np
A = np.array([[0, 4, 3, 0],
              [0, 0, 0, 1],
              [0, 3, 0, 1],
              [2, 0, 0, 0]])
G = nx.from_numpy_matrix(A, create_using=nx.DiGraph())
print(nx.dijkstra_path(G, 0, 1))

另请参阅:networkx.dijkstra_path


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接