Python实现最短路径Dijkstra算法

class Graph_matrix(object):
    def __init__(self):
        self.storage_matrix = []
        self.node_list = []

    def make_picture(self, matrix, _nodes):
        '''
        :param matrix: 输入邻接矩阵
        :return:
        '''
        self.node_list = _nodes
        for m in matrix:
            self.storage_matrix.append(m)

    def dict_min_by_value(self,this_dict):
        '''
        字典里值最小的键
        '''
        min = 10 ** 10
        key = ''
        for get_item in this_dict.items():
            if get_item[-1] over_node[min_key]+self.storage_matrix[i][j]:
                    found_node[get_node[0]]=over_node[min_key]+self.storage_matrix[i][j]
        print over_node



m = 10 ** 10  # 代替表示无穷大
nodes = ['a', 'b', 'c', 'd', 'e', 'f']
distance = [[0, 7, 9, m, 14, m],  # a
            [7, 0, 10, 15, m, m],  # b
            [9, 10, 0, 11, 2, m],  # c
            [m, 15, 11, 0, m, 6],  # d
            [14, m, 2, m, 0, 9],  # e
            [m, m, m, 6, 9, 0]]  # f
test = Graph_matrix()
test.make_picture(distance,nodes)
test.dijkstra('a')

你可能感兴趣的:(数据结构,算法,Python笔记)