头歌图的广度优先遍历(邻接表存储)
时间: 2025-01-23 18:10:35 浏览: 33
### 实现基于邻接表的图广度优先遍历
对于采用邻接表作为内部表示形式的图而言,执行广度优先搜索(BFS)意味着从某个初始节点出发,首先访问其所有相邻节点,然后再依次探索这些新发现节点各自的邻居直到整个图形被完全解析完毕[^1]。
#### Python代码示例
下面给出一段Python语言编写的函数`bfs_adj_list()`,该函数接收一个由字典构成的邻接列表以及起点索引作为参数,并返回按层次顺序排列的结果列表:
```python
from collections import deque
def bfs_adj_list(graph, start_vertex):
visited = set() # 记录已访问过的结点集合
queue = deque([start_vertex]) # 初始化队列并加入首个待处理元素
result = [] # 存储最终输出序列
while queue:
vertex = queue.popleft()
if vertex not in visited:
visited.add(vertex)
result.append(vertex)
neighbors = graph[vertex]
for neighbor in neighbors:
if neighbor not in visited:
queue.append(neighbor)
return result
```
此段程序利用了双端队列(`deque`)来高效管理等待访问的节点;通过设置标记位防止重复探测同一位置;最后收集得到完整的遍访路径[^4]。
阅读全文
相关推荐


















