请问大佬这个代码该怎么改 加急

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':(3,6), 'C':(3,8), 'D':(5,2)},
     'B':{'E':(5,8)},
     'C':{'D':(6,1), 'F':(8,3)},
     'D':{'B':(7,4), 'E':(11,4), 'G':(4,9)},
     'E':{'D':(9,2)},
     'F':{'D':(3,1), 'G':(2,7)},
     'G':{'E':(5,8)}}
g = DirectedGraph(d)
g.searchPath('A', 'D')
g.searchPath('A', 'E')
  1. 利用复合数据类型表达有向图,要求每条边同时具有空间距离和时间距离。
  2. 编写Path类表示路径。该类应包括用复合数据类型表示的具体路径和费用,应具有增加节点产生新路径的方法。产生路径后,费用同步更新,且为只读属性。
  3. 编写有向图类DirectedGraph。该类应具有存储有向图数据的属性,具有产生所有可行路径的私有方法,具有从所有可行路径中搜索出空间和时间最短路径并打印到控制台的方法。
  4. 对于任意两个节点,输出空间和时间最短路径和费用

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答

本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。