宽度学习Python代码
时间: 2024-12-15 08:12:19 浏览: 14
宽度学习(Width Learning),也称为宽度优先搜索(Breadth-First Search, BFS),是一种图搜索算法,常用于遍历或查找图中的最短路径。在Python中,我们可以使用内置的数据结构`deque`(双端队列)来实现宽度学习,因为它支持高效的添加和删除操作。
下面是一个简单的宽度学习(BFS)遍历无向图的例子:
```python
from collections import deque
def bfs(graph, start):
visited = set() # 已访问节点
queue = deque([start]) # 初始化队列,起点入队
while queue:
vertex = queue.popleft() # 弹出队首元素
if vertex not in visited:
visited.add(vertex) # 标记已访问
print(vertex, end=" ") # 输出节点
for neighbor in graph[vertex]: # 遍历邻居节点
queue.append(neighbor)
# 假设我们有一个邻接列表表示的图
graph = {
'A': ['B', 'C'],
'B': ['A', 'D'],
'C': ['A', 'E'],
'D': ['B'],
'E': ['C']
}
bfs(graph, 'A')
```
在这个例子中,从节点'A'开始,算法会先访问所有距离'A'步数为1的节点,然后是步数为2的节点,以此类推。
阅读全文