广度优先搜索(BFS, Breadth-First Search)

好的,我给你讲 广度优先搜索(BFS, Breadth-First Search),并配一个直观例子。


1️⃣ 什么是广度优先

广度优先搜索的特点:

  1. 按层访问:先访问根节点,然后访问它的直接子节点,再访问子节点的子节点......

  2. 使用队列(FIFO):保证先入队的节点先访问。

  3. 常用于:层序遍历二叉树、最短路径搜索、图的遍历等。

核心思想:先访问"广度"(当前层)再访问"深度"(下一层)。


2️⃣ 举例:二叉树层序遍历

假设有二叉树:

复制代码
        1
       / \
      2   3
     / \   \
    4   5   6

用列表表示为:

复制代码
[1, 2, 3, 4, 5, None, 6]

BFS 遍历过程

  1. 初始队列

    queue = [1]

  • 访问 1,加入结果 [1]

  • 将左右子节点 23 入队

    queue = [2, 3]

  1. 访问第二层
  • 访问 2 → 结果 [2],入队 45

  • 访问 3 → 结果 [2, 3],入队右子节点 6

    queue = [4, 5, 6]

  1. 访问第三层
  • 访问 4, 5, 6 → 结果 [4, 5, 6]

  • 没有子节点,队列为空,结束


最终层序遍历结果:

复制代码
[[1], [2, 3], [4, 5, 6]]

✅ 可以看到,先访问每一层的所有节点,再进入下一层,这就是 BFS。


如果你愿意,我可以帮你画一张 队列推进示意图,让你一眼就能看懂每一步队列里存的节点和访问顺序,非常直观。

你想让我画吗?

相关推荐
C雨后彩虹4 小时前
任务最优调度
java·数据结构·算法·华为·面试
少林码僧6 小时前
2.31 机器学习神器项目实战:如何在真实项目中应用XGBoost等算法
人工智能·python·算法·机器学习·ai·数据挖掘
钱彬 (Qian Bin)6 小时前
项目实践15—全球证件智能识别系统(切换为Qwen3-VL-8B-Instruct图文多模态大模型)
人工智能·算法·机器学习·多模态·全球证件识别
Niuguangshuo6 小时前
EM算法详解:解密“鸡生蛋“的机器学习困局
算法·机器学习·概率论
a3158238066 小时前
Android 大图显示策略优化显示(一)
android·算法·图片加载·大图片
一条大祥脚7 小时前
26.1.9 轮廓线dp 状压最短路 构造
数据结构·c++·算法
鲨莎分不晴7 小时前
反向传播的数学本质:链式法则与动态规划的完美共舞
算法·动态规划
sonadorje7 小时前
逻辑回归中的条件概率
算法·机器学习·逻辑回归
cici158747 小时前
基于Pan-Tompkins算法的ECG信号HRV提取方案
算法
McGrady-1757 小时前
拓扑导航 vs 几何导航的具体实现位置
算法