python BFS算法模板
时间: 2023-10-12 22:16:22 浏览: 102
基于Python实现的八数码问题算法(深广度算法,A星算法)+源代码+文档说明
以下是 Python 中 BFS(广度优先搜索)算法的模板:
```python
def bfs(graph, start):
visited = set() # 用集合记录已经访问过的节点
queue = [start] # 用队列存储遍历的节点
while queue:
node = queue.pop(0) # 取出队列中的第一个节点
if node not in visited:
visited.add(node)
# 将当前节点的未访问过的邻居节点加入队列
queue.extend([neighbor for neighbor in graph[node] if neighbor not in visited])
return visited
```
其中,`graph` 是一个字典,用于存储图的邻接表。字典的键表示节点,字典的值是与该节点相邻的节点列表。`start` 是起始节点。
该算法使用了集合来记录已经访问过的节点,队列则用于存储遍历的节点。在每一轮迭代中,取出队列中的第一个节点,并将该节点的未访问过的邻居节点加入队列中。如果队列为空,则说明已经遍历完了整张图。最后返回遍历过的节点集合。
阅读全文