手机
当前位置:查字典教程网 >脚本专栏 >python >python数据结构之图的实现方法
python数据结构之图的实现方法
摘要:本文实例讲述了python数据结构之图的实现方法。分享给大家供大家参考。具体如下:下面简要的介绍下:比如有这么一张图:A->BA->CB->...

本文实例讲述了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数据结构之图的实现方法】相关文章:

python实现dnspod自动更新dns解析的方法

python回调函数的使用方法

python基础教程之基本内置数据类型介绍

python正则分组的应用

Python 条件判断的缩写方法

python操作日期和时间的方法

Python操作列表的常用方法分享

Python中针对函数处理的特殊方法

Python基本数据类型详细介绍

python 数据加密代码

精品推荐
分类导航