python数据结构之图的实现方法
发布时间:2020-05-23 16:29:51 所属栏目:Python 来源:互联网
导读:本文实例讲述了python数据结构之图的实现方法。分享给大家供大家参考。具体如下:
|
本文实例讲述了python数据结构之图的实现方法。分享给大家供大家参考。具体如下: 下面简要的介绍下: 比如有这么一张图: A -> B 可以用字典和列表来构建
graph = {'A': ['B','C'],'B': ['C','D'],'C': ['D'],'D': ['C'],'E': ['F'],'F': ['C']}
找到一条路径:
def find_path(graph,start,end,path=[]):
path = path + [start]
if start == end:
return path
if not graph.has_key(start):
return None
for node in graph[start]:
if node not in path:
newpath = find_path(graph,node,path)
if newpath: return newpath
return None
找到所有路径:
def find_all_paths(graph,path=[]):
path = path + [start]
if start == end:
return [path]
if not graph.has_key(start):
return []
paths = []
for node in graph[start]:
if node not in path:
newpaths = find_all_paths(graph,path)
for newpath in newpaths:
paths.append(newpath)
return paths
找到最短路径:
def find_shortest_path(graph,path=[]):
path = path + [start]
if start == end:
return path
if not graph.has_key(start):
return None
shortest = None
for node in graph[start]:
if node not in path:
newpath = find_shortest_path(graph,path)
if newpath:
if not shortest or len(newpath) < len(shortest):
shortest = newpath
return shortest
希望本文所述对大家的Python程序设计有所帮助。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
