BFS 按级别逐层探索图,在深入之前访问节点的所有邻居。它使用 queue,并在无权图中找到 最短路径(边数最少)。
为什么这很重要
从源点开始,将其入队,然后反复出队一个节点,访问其未访问的邻居,并将其入队。visited 集合可防止重复访问。
例子
python
collections deque
():
visited = {start}
queue = deque([start])
order = []
queue:
node = queue.popleft()
order.append(node)
nbr graph[node]:
nbr visited:
visited.add(nbr)
queue.append(nbr)
order
graph = {: [, ], : [], : [], : []}
bfs(graph, )
