python改代码 大佬帮帮我

 

代码贴出来,别人才能帮你修改的m

class DirectedGraph(object):
    #构造函数,利用原始图初始化有向图类
    def __init__(self, d):
        if isinstance(d, dict):
            self.__graph = d
        else:
            self.__graph = dict()
            print('Sth error')
    
    #通过递归生成所有可能的路径
    def __generatePath(self, graph, path, end, results):
        current = path[-1]
        if current == end:
            results.append(path)
        else:
            for n in graph[current]:
                if n not in path:
                    self.__generatePath(graph, path + [n], end, results)

    #搜索start到end之间最短的路径,并输出
    def searchPath(self, start, end):
        self.__results = []
        self.__generatePath(self.__graph, [start], end, self.__results)
        self.__results.sort(key = lambda x:len(x))    #按所有路径的长度进行排序
        print('The path from ',self.__results[0][0], ' to ', self.__results[0][-1], ' is:')
        for path in self.__results:
            print(path)

d = {'A':['B', 'C', 'D'],
     'B':['E'],
     'C':['D', 'F'],
     'D':['B', 'E', 'G'],
     'E':['D'],
     'F':['D', 'G'],
     'G':['E']}
g = DirectedGraph(d)
g.searchPath('A', 'D')
g.searchPath('A', 'E')

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632