python bfs算法代码介绍
时间: 2023-11-09 16:00:51 浏览: 92
BFS(广度优先搜索)是一种图形搜索算法,它从根节点开始,逐层遍历整张图,直到找到目标节点或遍历完整张图。BFS 通常使用队列来实现。
以下是 Python 中 BFS 算法的代码实现:
```python
from collections import deque
def bfs(graph, start, end):
# 创建一个队列,用于存储要遍历的节点
queue = deque()
# 将起始节点加入队列
queue.append(start)
# 创建一个集合,用于存储已经遍历过的节点
visited = set()
# 遍历队列中的节点
while queue:
# 取出队列中的第一个节点
node = queue.popleft()
# 如果该节点已经被遍历过,则跳过
if node in visited:
continue
# 将该节点标记为已遍历
visited.add(node)
# 如果找到了目标节点,则返回 True
if node == end:
return True
# 将该节点的所有邻居加入队列
for neighbor in graph[node]:
queue.append(neighbor)
# 如果遍历完整张图都没有找到目标节点,则返回 False
return False
```
其中,`graph` 是一个字典,表示图的邻接表;`start` 和 `end` 分别表示起始节点和目标节点。
阅读全文