广度优先遍历算法代码
时间: 2024-11-11 20:13:44 浏览: 19
Java实现二叉树的深度优先遍历和广度优先遍历算法示例
5星 · 资源好评率100%
广度优先遍历(Breadth-First Search,简称BFS),是一种用于图或树的遍历算法,它按照层级顺序访问节点。其基本思想是从根节点开始,先访问所有直接相连的节点,然后依次访问第二层、第三层等。
以下是使用Python实现的广度优先遍历(邻接列表表示的无向图)的一个简单例子:
```python
from collections import deque
def bfs(graph, start):
visited = set() # 记录已访问的节点
queue = deque([start]) # 使用双端队列作为栈模拟
while queue:
vertex = queue.popleft() # 取出队首元素
if vertex not in visited:
visited.add(vertex) # 标记已访问
print(vertex, end=" ") # 打印节点
for neighbor in graph[vertex]: # 遍历邻居节点
queue.append(neighbor)
# 示例:一个简单的邻接列表表示的图
graph = {
'A': ['B', 'C'],
'B': ['A', 'D', 'E'],
'C': ['A', 'F'],
'D': ['B'],
'E': ['B', 'F'],
'F': ['C', 'E']
}
bfs(graph, 'A') # 输出:A B C D E F
```
阅读全文