使用python,是否有一个函数可以让我找到networkx图中两个节点之间的最短距离。该函数本身不能来自networkx。 本质上我问的是,networkx.shortest_path_length()是否有一个替代函数,而没有实际使用NetworkX。我看过源代码,它也具有nx函数。
答案 0 :(得分:0)
是的,Dijkstra’s algorithm。该算法创建了从起始顶点(源)到图中所有其他点的最短路径树。
def dijkstra(self, src):
dist = [sys.maxint] * self.V
dist[src] = 0
sptSet = [False] * self.V
for cout in range(self.V):
u = self.minDistance(dist, sptSet)
sptSet[u] = True
for v in range(self.V):
if self.graph[u][v] > 0 and sptSet[v] == False and dist[v] > dist[u] + self.graph[u][v]:
dist[v] = dist[u] + self.graph[u][v]
self.printSolution(dist)