
from collections import deque |
def bfs(graph, start_node): |
# 使用队列存储待访问的节点 |
queue = deque() |
# 使用集合记录已访问的节点 |
visited = set() |
# 将起始节点加入队列和已访问集合 |
queue.append(start_node) |
visited.add(start_node) |
while queue: |
# 从队列中取出一个节点 |
node = queue.popleft() |
print(node) # 输出节点 |
# 遍历该节点的所有邻居节点 |
for neighbor in graph[node]: |
# 若邻居节点未被访问,则加入队列和已访问集合 |
if neighbor not in visited: |
queue.append(neighbor) |
print(neighbor) # 输出节点 |
visited.add(neighbor) |
# 准备图的表示 |
graph = { |
'A': ['B', 'C'], |
'B': ['A', 'D', 'E'], |
'C': ['A', 'F'], |
'D': ['B'], |
'E': ['B', 'F'], |
'F': ['C', 'E'] |
} |
# 调用bfs函数 |
start_node = 'A' |
bfs(graph, start_node) |



