是否有找到两个节点之间最短路径的函数?

时间:2019-03-27 19:23:36

标签: python function networkx shortest-path

使用python,是否有一个函数可以让我找到networkx图中两个节点之间的最短距离。该函数本身不能来自networkx。 本质上我问的是,networkx.shortest_path_length()是否有一个替代函数,而没有实际使用NetworkX。我看过源代码,它也具有nx函数。

1 个答案:

答案 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)