广度优先搜索遍历算法代码
时间: 2023-06-21 14:13:05 浏览: 90
广度优先搜索遍历算法(BFS)是一种用于图形和树形数据结构的搜索算法。它从根节点开始,逐层扩展搜索范围,直到找到目标节点为止。以下是广度优先搜索遍历算法的 Python 代码实现:
```python
from collections import deque
# 定义图形结构
graph = {
'A': ['B', 'C'],
'B': ['D', 'E'],
'C': ['F'],
'D': [],
'E': ['F'],
'F': ['G'],
'G': []
}
# 定义 BFS 函数
def bfs(graph, start):
visited = [] # 用于存储已访问的节点
queue = deque([start]) # 用于存储待访问的节点
while queue:
node = queue.popleft() # 从队列中取出一个节点
if node not in visited:
visited.append(node) # 将节点标记为已访问
neighbors = graph[node] # 获取节点的邻居
for neighbor in neighbors:
queue.append(neighbor) # 将邻居加入待访问队列
return visited
# 测试
print(bfs(graph, 'A'))
```
在上述代码中,我们首先定义了一个图形结构,然后定义了 BFS 函数。BFS 函数使用一个队列来存储待访问的节点,从起始节点开始,每次从队列中取出一个节点,并将其邻居加入待访问队列。我们还使用 visited 列表来存储已经访问过的节点,以避免重复访问。最后,我们测试了 BFS 函数,并输出了访问的节点顺序。
阅读全文