基于python的广度优先遍历代码150行
时间: 2024-12-02 09:16:24 浏览: 22
在Python中,基于列表的简单广度优先搜索(Breadth-First Search, BFS)通常用于图或树的数据结构。下面是一个基本的150行左右的BFS算法示例,我们以邻接列表的方式表示图:
```python
from collections import deque
def bfs(graph, start):
# 初始化队列和已访问节点集合
queue = deque([start])
visited = set()
while queue:
vertex = queue.popleft() # 取出队首元素
print(vertex, end=" ") # 输出当前节点
# 将未访问的邻居加入队列
for neighbor in graph[vertex]:
if neighbor not in visited:
queue.append(neighbor)
visited.add(neighbor)
print() # 换行以便于展示结果
# 假设graph是一个字典,键是节点,值是其邻居列表
# 示例图:graph = { 'A': ['B', 'C'], 'B': ['D', 'E'], 'C': [], 'D': ['F'], 'E': ['F'], 'F': [] }
bfs(graph, 'A') # 从'A'开始遍历
```
这段代码首先将起始节点放入队列,然后在每轮循环中取出队首节点,并将其所有未访问的邻居加入队列。由于Python的deque操作效率高,因此整个过程相当简洁。
阅读全文