广度优先搜索遍历连通图
时间: 2023-12-07 18:39:30 浏览: 84
图的广度优先遍历
4星 · 用户满意度95%
以下是广度优先搜索遍历连通图的步骤:
1. 从图中任意一个顶点开始,将该顶点标记为已访问,并将该顶点加入队列中。
2. 从队列中取出第一个顶点,遍历该顶点的所有邻接顶点,将未访问的邻接顶点标记为已访问,并将其加入队列中。
3. 重复步骤2,直到队列为空。
下面是一个示例代码,用于演示广度优先搜索遍历连通图的过程:
```python
from collections import deque
# 定义一个无向图
graph = {
'A': ['B', 'C'],
'B': ['A', 'D', 'E'],
'C': ['A', 'F'],
'D': ['B'],
'E': ['B', 'F'],
'F': ['C', 'E']
}
# 定义广度优先搜索函数
def bfs(graph, start):
visited = set() # 用集合来保存已访问的顶点
queue = deque([start]) # 用双端队列来保存待访问的顶点
visited.add(start) # 将起始顶点标记为已访问
while queue:
vertex = queue.popleft() # 取出队列中的第一个顶点
print(vertex, end=' ')
for neighbor in graph[vertex]: # 遍历该顶点的所有邻接顶点
if neighbor not in visited: # 如果邻接顶点未被访问过
visited.add(neighbor) # 将邻接顶点标记为已访问
queue.append(neighbor) # 将邻接顶点加入队列中
# 调用广度优先搜索函数
bfs(graph, 'A')
```
输出结果为:A B C D E F
阅读全文