当前位置:   article > 正文

Python BFS(广度优先搜索)

python bfs

广度优先搜索(BFS)是一种遍历策略,从一个顶点开始,辐射状地优先遍历其周围较广的区域,找出最短路径。

BFS算法的实现需要使用队列来存储待访问的节点,并使用一个标记数组来记录已访问过的节点。

  1. graph = {
  2. "A": ["B", "C"],
  3. "B": ["A", "C", "D"],
  4. "C": ["A", "B", "D", "F"],
  5. "D": ["B", "C", "E", "F"],
  6. "E": ["C", "D"],
  7. "F": ["D"],
  8. }
  9. def BFS(graph, start):
  10. # 起到队列的作用
  11. queue = []
  12. queue.append(start)
  13. #存储已经发现的节点
  14. seen = set()
  15. seen.add(start)
  16. #当队列不为空时判断是否还有未访问的节点
  17. while (len(queue) > 0):
  18. #从队列中取出一个节点
  19. vertex = queue.pop(0)
  20. #找到这个节点的所以根节点
  21. nodes = graph[vertex]
  22. #判断这些根节点有没有被访问过
  23. #如果没有放访问过把这个节点放入队列继续找它的子节点
  24. for w in nodes:
  25. if w not in seen:
  26. queue.append(w)
  27. seen.add(w)
  28. print(vertex)
  29. BFS(graph,"A")

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/464427
推荐阅读
相关标签
  

闽ICP备14008679号