图的广度优先遍历算法代码
时间: 2024-06-21 18:02:00 浏览: 126
图的广度优先遍历(Breadth-First Search, BFS)是一种用于遍历或搜索树和图数据结构的算法。它从根节点开始,按照层级顺序逐层遍历,直到找到目标节点或者遍历完整个图。以下是使用Python实现图的BFS算法的一个基本示例,假设我们有一个邻接列表表示的图:
```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': ['D', 'E'],
'C': ['F'],
'D': [],
'E': ['F'],
'F': []
}
bfs(graph, 'A') # 从节点A开始进行BFS
```
在上面的代码中,`graph`是一个字典,键是节点,值是其邻居列表。`start`是起点。算法会按照BFS的方式打印出从`start`到其他所有节点的路径。
阅读全文