广度优先遍历python代码
时间: 2023-10-14 12:25:46 浏览: 81
以下是广度优先遍历的 Python 代码:
```
from collections import deque
# 定义图结构
graph = {
'A': ['B', 'C'],
'B': ['D', 'E'],
'C': ['F'],
'D': [],
'E': ['F'],
'F': []
}
# 广度优先遍历函数
def bfs(graph, start):
# 创建队列
queue = deque([start])
# 记录已经遍历过的节点
visited = set([start])
# 遍历队列
while queue:
# 取出队列中的第一个节点
vertex = queue.popleft()
print(vertex)
# 遍历该节点的邻居节点
for neighbor in graph[vertex]:
# 如果邻居节点还没有遍历过,则加入队列
if neighbor not in visited:
visited.add(neighbor)
queue.append(neighbor)
# 测试代码
bfs(graph, 'A')
```
上面的代码中,我们使用了 Python 中的 deque 双端队列来实现队列的功能。在遍历时,我们先将起始节点加入队列,然后不断从队列中取出节点,并遍历该节点的邻居节点,如果邻居节点还没有被遍历过,则加入队列中。直到队列为空,遍历结束。
阅读全文