python数据结构之图的实现方法
本文实例讲述了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']}
找到一条路径:
deffind_path(graph,start,end,path=[]): path=path+[start] ifstart==end: returnpath ifnotgraph.has_key(start): returnNone fornodeingraph[start]: ifnodenotinpath: newpath=find_path(graph,node,end,path) ifnewpath:returnnewpath returnNone
找到所有路径:
deffind_all_paths(graph,start,end,path=[]): path=path+[start] ifstart==end: return[path] ifnotgraph.has_key(start): return[] paths=[] fornodeingraph[start]: ifnodenotinpath: newpaths=find_all_paths(graph,node,end,path) fornewpathinnewpaths: paths.append(newpath) returnpaths
找到最短路径:
deffind_shortest_path(graph,start,end,path=[]): path=path+[start] ifstart==end: returnpath ifnotgraph.has_key(start): returnNone shortest=None fornodeingraph[start]: ifnodenotinpath: newpath=find_shortest_path(graph,node,end,path) ifnewpath: ifnotshortestorlen(newpath)<len(shortest): shortest=newpath returnshortest
希望本文所述对大家的Python程序设计有所帮助。
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西