python广度优先搜索代码
时间: 2024-11-28 17:19:07 浏览: 9
在Python中,广度优先搜索(Breadth-First Search, BFS)通常用于遍历图或树结构,寻找最短路径。下面是一个简单的BFS算法实现,它使用了`collections`模块中的`deque`数据结构来提高效率:
```python
from collections import deque
def bfs(graph, start):
# 创建一个队列和一个已访问集合
queue = deque([start])
visited = set([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)
# 假设我们有一个邻接列表表示的无向图
graph = {
'A': ['B', 'C'],
'B': ['D', 'E'],
'C': ['F'],
'D': [],
'E': ['F'],
'F': []
}
bfs(graph, 'A') # 从'A'开始做BFS
```
在这个例子中,`graph`是一个字典,键是顶点,值是其邻居的列表。BFS会先访问起始节点的所有邻居,然后再访问那些邻居未访问过的节点,以此类推。
阅读全文