算法与数据结构之BFS广度优先遍历

本文我们来讲解一下图的广度优先遍历算法(BFS),看完本文相信你对BFS算法的理解会更进一步。

BFS算法流程

**核心思想:**一层一层向外遍历,先访问起点所有相邻节点,再访问下一层,类似水波扩散

  • 初始化队列,将起点入队;创建访问标记数组 / 集合,标记起点已访问,防止重复遍历。
  • 队列不为空时循环: ① 队首节点出队,处理该节点(打印、记录结果等) ② 遍历该节点所有相邻邻居 ③ 邻居未被访问:标记已访问,并入队
  • 队列为空,遍历结束

例题

例子是最好的学习工具,接下来我们以这个图为例,来详细讲解一下BFS算法的基本流程。

相关推荐
看我眼色行事^ \/ ^14 分钟前
2024.05.11 360春招WEB前端编程题
算法
来一碗刘肉面22 分钟前
有向无环图 DAG(描述表达式)
数据结构
一只肥瘫瘫25 分钟前
编码器 PLL 角度与速度观测器原理
人工智能·算法
Nil2081 小时前
leetcode 146LRU缓存
算法·leetcode·缓存
郝学胜_神的一滴1 小时前
干货版《算法导论》18:遍历增删原理、时间复杂度与集合序列实现全解
数据结构·算法
-dzk-2 小时前
【滑动窗口】LC 3.无重复字符的最长子串
算法·滑动窗口
zzxdear2 小时前
用 OR-Tools CP-SAT 求解最简单的柔性作业车间调度(FJSP)
算法
luj_17682 小时前
变频技术核心原理揭秘
服务器·c语言·开发语言·经验分享·算法
rannn_1112 小时前
【力扣hot100】图论专题+模板|DFS、BFS、拓扑排序...
java·算法·leetcode·深度优先·图论
_Narcissus_2 小时前
B树概念及操作笔记(含完整代码实现)
c语言·数据结构·数据库·c++·笔记·b树·算法