Python中数据结构,python列表的存储结构
图由顶点和边组成。如果图中顶点是有序的,则称之为有向图。
由顶点组成的序列,称为路径。
除了可以对图进行遍历外,还可以搜索图中任意两个顶点之间的最短路径。
在大蟒中,可利用字典 {键:值} 来创建图。
图中的每个顶点,都是字典中的键,该键对应的值为"该顶点所指向的图中其他的顶点"。
# -*-编码:utf-8-*-# file:pygraph。py # def搜索图形(图形,开始,结束):#搜索树结果=[]生成路径(图形,[开始],结束,结果)#生成路径结果。sort(key=x:len(x))#按路径长短排序返回结果定义生成路径(图形,路径,结束,结果):#生成路径state=path[-1]if state==end:results。追加(路径)else:对于图中的弧[状态]:如果弧不在path: generatePath(graph,path [arc],end,results)if _ _ name _ _= _ _ main _ _ :Graph={ A :[ B ,#等中构建树B: [E], C: [D , F], D: [B , E: [], F: [D , G], G: [E]}r=searchGraph(Graph, A , D)#搜索A到D的所有路径打印( * * * * * * * * * * * * * * * * * * * * * * * )路径A到d )打印( * * * * * * * * * * * * * * * * * * * * * * )for I in r:print(I)r=search Graph(Graph, A , E)#搜索A到E的所有路径打印( * * * * * * * * * * * * * * * * * * * * * * * )路径A到E )print( * * * * * * * * * * * * * * * * * * * for I in r:print(I)r=search Graph(Graph, C , E)#搜索C到E的所有路径打印( * * * * * * * * * * * * * * * * * * * * * * * )打印(路径C到e’)在r:print(I)中为I打印( * * * * * * * * * * * * * * * * * * * )
运行结果如下:
Python 3.6.1 (v3.6.1:69c0db5,2017年3月21日18:41:36)[MSC v . 1900 64位(AMD64)]在win32上键入“版权”、“信用”或许可证()了解更多信息. s==RESTART:G:\ pygraph。py==* * * * * * * * * * * * * * * * * * * *路径A到D * * * * * * * * * * * * * * * * * * * * * * *[ A , C , D][A , C , D][A , C , F , D ]* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *[ A , B , E][A , C , D , E][A , D , B , E][A , D , D , D , E]
历史中提交的图片或压缩文件
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。