代码贴出来,别人才能帮你修改的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