注意广度实验python代码
时间: 2024-10-24 15:08:47 浏览: 17
宽度优先搜索(Breadth-First Search,简称BFS),是一种图遍历算法,Python 中实现 BFS 通常会使用队列数据结构。下面是一个简单的广度优先搜索的 Python 代码示例,用于查找无向图中两个节点之间的最短路径:
```python
from collections import deque
def bfs(graph, start, end):
visited = {start} # 初始化已访问节点集合
queue = deque([start]) # 使用双端队列存储待访问节点
path = [] # 存储路径信息
while queue: # 当队列非空时,继续遍历
node = queue.popleft() # 取出队首节点
if node == end: # 如果找到目标节点,返回路径
return path + [node]
for neighbor in graph[node]: # 遍历当前节点的所有邻居
if neighbor not in visited: # 如果邻居未访问过
visited.add(neighbor) # 添加到已访问集合
path.append(node) # 更新路径记录
queue.append(neighbor) # 将邻居加入队列
return None # 没有找到路径时返回 None
# 示例图的邻接列表表示
graph = {
'A': ['B', 'C'],
'B': ['D', 'E'],
'C': ['F'],
'D': [],
'E': ['F'],
'F': []
}
start_node = 'A'
end_node = 'F'
print(bfs(graph, start_node, end_node))
阅读全文