A5下载文章资讯

分类分类

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

2015-07-08 16:24作者:zhao

本文实例讲述了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程序设计有所帮助。

展开全部

相关

说两句网友评论
    我要跟贴
    取消