帮我用 python 写一段 bfs 代码
当然可以!下面是一个用 Python 编写的广度优先搜索(BFS)算法的示例代码:
from collections import deque
def bfs(graph, start):
visited = set() # 用于存储已访问过的节点
queue = deque([start]) # 使用队列来进行广度优先搜索
visited.add(start) # 将起始节点标记为已访问
while queue:
node = queue.popleft() # 出队一个节点
print(node) # 打印当前节点,或进行其他操作
# 遍历当前节点的邻居节点
for neighbor in graph[node]:
if neighbor not in visited:
queue.append(neighbor) # 将未访问过的邻居节点入队
visited.add(neighbor) # 标记邻居节点为已访问
# 测试代码
graph = {
'A': ['B', 'C'],
'B': ['A', 'D', 'E'],
'C': ['A', 'F'],
'D': ['B'],
'E': ['B', 'F'],
'F': ['C', 'E']
}
bfs(graph, 'A')
此示例代码使用了一个字典来表示无向图,其中每个键表示一个节点,对应的值是一个列表,表示与该节点相邻的节点。在 bfs 函数中,我们使用了一个队列 queue 来存储待访问的节点,并使用一个集合 visited 来存储已访问过的节点。在算法的主循环中,我们从队列中取出一个节点,并将其邻居节点添加到队列中,同时标记邻居节点为已访问。这样就可以实现广度优先搜索
原文地址: https://www.cveoy.top/t/topic/iHvt 著作权归作者所有。请勿转载和采集!