A5下载 - 努力做内容最丰富最安全的下载站!

A5站长下载站

当前位置:A5下载 > 编程开发 > 网站开发 > python数据结构之图的实现方法

python数据结构之图的实现方法

时间:2015-07-08 16:24作者:zhao人气:50

本文实例讲述了python数据结构之图的实现方法。分享给大家供大家参考。具体如下:

下面简要的介绍下:

比如有这么一张图:

A -> B

A -> C

B -> C

B -> D

C -> D

D -> C

E -> F

F -> C

可以用字典和列表来构建

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, end, path)

if newpath: return newpath

return None

找到所有路径:

def find_all_paths(graph, start, end, 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, node, end, path)

for newpath in newpaths:

paths.append(newpath)

return paths

找到最短路径:

def find_shortest_path(graph, start, end, 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, node, end, path)

if newpath:

if not shortest or len(newpath) < len(shortest):

shortest = newpath

return shortest

希望本文所述对大家的Python程序设计有所帮助。

标签python,数据结构,之图,实现,方法,本文,实例,讲述了

相关下载

查看所有评论+

网友评论

网友
您的评论需要经过审核才能显示

公众号