本文實例講述了Python數據結構之圖的應用。分享給大家供大家參考,具體如下:
一、圖的結構

二、代碼
# -*- coding:utf-8 -*-#! python3def searchGraph(graph,start,end): results =[] generatePath(graph,[start],end,results) results.sort(key =lambda x:len(x)) return resultsdef generatePath(graph,path,end,results): state = path[-1] if state == end: results.append(path) else: for arc in graph[state]: if arc not in path: generatePath(graph,path +[arc],end ,results)if __name__ =='__main__': Graph={'A':['B','C','D'], 'B':['E'], 'C':['D','F'], 'D':['B','E','G'], 'E':[], 'F':['D','G'], 'G':['E']} r = searchGraph(Graph,'A','E') print("******************") print(' path A to E') print("******************") for i in r: print(i)三、運行結果
******************
path A to E
******************
['A', 'B', 'E']
['A', 'D', 'E']
['A', 'C', 'D', 'E']
['A', 'D', 'B', 'E']
['A', 'D', 'G', 'E']
['A', 'C', 'D', 'B', 'E']
['A', 'C', 'D', 'G', 'E']
['A', 'C', 'F', 'D', 'E']
['A', 'C', 'F', 'G', 'E']
['A', 'C', 'F', 'D', 'B', 'E']
['A', 'C', 'F', 'D', 'G', 'E']
運行效果圖如下:

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數據結構與算法教程》、《Python加密解密算法與技巧總結》、《Python編碼操作技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》
希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答