python图的应用

一 图的结构


 
 

二 代码

  1. def searchGraph(graph,start,end):
  2. results =[]
  3. generatePath(graph,[start],end,results)
  4. results.sort(key =lambda x:len(x))
  5. return results
  6. def generatePath(graph,path,end,results):
  7. state = path[-1]
  8. if state == end:
  9. results.append(path)
  10. else:
  11. for arc in graph[state]:
  12. if arc notin path:
  13. generatePath(graph,path +[arc],end ,results)
  14. if __name__ =='__main__':
  15. Graph={'A':['B','C','D'],
  16. 'B':['E'],
  17. 'C':['D','F'],
  18. 'D':['B','E','G'],
  19. 'E':[],
  20. 'F':['D','G'],
  21. 'G':['E']}
  22. r = searchGraph(Graph,'A','E')
  23. print("******************")
  24. print(' path A to E')
  25. print("******************")
  26. for i in r:
  27. 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']
  • 大小: 17.5 KB
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值