手机
当前位置:查字典教程网 >脚本专栏 >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中stdout输出不缓存的设置方法

python 提取文件的小程序

Python下singleton模式的实现方法

python处理文本文件实现生成指定格式文件的方法

Python基本数据类型详细介绍

python 数据加密代码

python插入排序算法的实现代码

精品推荐
分类导航