当前位置: 首页 > news >正文

图的遍历(广度优先遍历 BFS)

文章目录

  • 算法思想
  • 算法实现
  • 遍历序列的 可变性
  • 复杂度分析
  • 广度优先生成树 / 森林

算法思想

核心思想:从起始顶点出发,先访问其所有邻接点,再访问邻接点的邻接点(类似于树的层次遍历)。

  • 队列(Queue):存放待访问的顶点,保证先入队的顶点先入先出(FIFO)。
  • 辅助数组 visited[]:标记顶点是否被访问过(防止走回头路,避免死循环)。

算法实现

// 遍历所有顶点 初始都为 falseboolvisited[MAX_VERTEX_NUM];//访问标记数组//对图G进行广度优先遍历voidBFSTraverse(Graph G){for(inti=0;i<G.vexnum;++i)visited[i]=FALSE;//访问标记数组初始化InitQueue(Q);//初始化辅助队列Qfor(inti=0;i<G.vexnum;++i)//从0号顶点开始遍历if(!visited[i])//对每个连通分量调用一次BFSBFS(G,i);//vi未访问过,从vi开始BFS}// if(!visited[i]) BFS(G, i);// 如果图是非连通的(比如两个孤立的三角形),从顶点0出发的BFS只能访问到第一个三角形。// 没有这个外循环,顶点5(第二个三角形)永远不会被访问,遍历会漏掉大量数据。//广度优先遍历voidBFS(Graph G,intv){//从顶点v出发,广度优先遍历图Gvisit(v);//访问:访问初始顶点vvisited[v]=TRUE;//标记:对v做已访问标记Enqueue(Q,v);//入队:顶点v入队列Qwhile(!isEmpty(Q)){DeQueue(Q,v);//顶点v出队列for(w=FirstNeighbor(G,v);w>=0;w=NextNeighbor(G,v,w))//检测v所有邻接点if(!visited[w]){//w为v的尚未访问的邻接顶点// 入队就标记visit(w);//访问:访问顶点wvisited[w]=TRUE;//标记:对w做已访问标记EnQueue(Q,w);//入队:顶点w入队列}//if}//while}

对于无向图,调用 BFS函数 的次数 = 连通分量数

遍历序列的 可变性

同一个图的邻接矩阵表示方式唯一,因此广度优先遍历序列唯一;

同一个图的邻接表表示方式不唯一,因此广度优先遍历序列不唯一;

顶点编号递增链表顺序依次访问邻接点(看题目要求)。

入队顺序 = 访问顺序。

复杂度分析

空间复杂度:主要来自辅助队列visited数组,均为O(|V|)

时间复杂度:主要是访问 顶点 和 边

广度优先生成树 / 森林

  • BFS生成树:遍历过程中,每个顶点第一次被访问时经过的边(当前顶点指向邻接点)所构成。

    • 连通图,共n nn个顶点:BFS生成树边数 =n − 1 \boldsymbol{n-1}n1
  • BFS生成森林:针对非连通图;多次执行BFS,每一个连通分量生成一棵BFS树,全部合称为BFS生成森林。

广度优先生成树由广度优先遍历过程确定。

由于邻接表的表示方式不唯一,因此基于邻接表的广度优先生成树也不唯一。

http://www.jsqmd.com/news/1365198/

相关文章:

  • 2026深圳PLC培训机构哪家好?正规合规机构盘点、实力维度测评、教学质量核验与签约避坑全攻略FAQ - U渠道
  • 下班总忍不住刷手机报复性熬夜,别让 “睡前放纵” 消耗身体
  • 2026海口美兰区电商合规怎么做?3家财税服务商测评推荐 - GrowthUME
  • 30个终端快捷键提升Linux/Mac操作效率
  • 2026、8 月蚌埠市蚌山区防水、防水公司、屋面防水、楼顶防水、正规公司 ** 推荐 + 避坑指南 - 万至防水
  • 揭秘2024年网站建设哪家好xm37真相:老板必看避坑指南与实战建议
  • 线上品牌宣传缺少实力背书,企业3a认证有什么用? - 慧办好
  • 【Matlab】集成学习医疗诊断模型优化
  • 2026 南昌上门除虫灭鼠,灭蟑螂灭白蚁常见问题解答 - LYL仔仔
  • 解锁你的音乐宝库:ncmdumpGUI让NCM格式音乐重获自由
  • 【2026-08】美术寒假集训优秀班怎么选?职高美术高考、美术复读生集训优选——飞帆美术培训 - 多才菠萝
  • 2026年全国10大纺织公司推荐!东莞市超海纺织有限公司实力领先 - 十大品牌榜
  • 字节跳动veRL框架解析:面向工业级分布式强化学习的架构设计与实践
  • 谷歌:扩散模型实现极速文本生成
  • 《DNESP32P4开发指南_V1.0》第四十一章 图片显示实验(下)
  • TVA-World具身智能神经符号融合与因果推理机制
  • 2026年深圳PLC培训学校靠谱性全维度盘点 正规合规机构选型指南与避坑FAQ 附本地优质服务商深度解读 - 行业观察网
  • 榆林车主看过来!美孚一号车养护马老六店,诚信可信口碑好的汽车维修保养,懂矿区路况,底盘精修,拒绝保养套路。 - 专业优选推荐榜
  • 如何用Sunshine将旧电脑变成游戏串流服务器:零成本打造全平台游戏体验
  • 【东营市】2026CPPM采购经理报考指南|正规机构甄选产业适配全攻略 - 中采供培
  • 一行配置解决Claude Code终端闪屏:环境变量TERM的优化原理与实践
  • 2026年企业软文投放平台GEO能力深度评测与对比分析 - GEORANK
  • 2026年水地源热泵企业可靠性指南,靠谱的是哪家? - 官方资讯
  • 本体工程与大模型深度融合:构建精准可靠知识系统的架构与实践
  • Python开发环境搭建与PyCharm配置全攻略:从零到高效编程
  • 2026徐州注册公司代办机构品牌推荐,哪个更靠谱? - 品牌优企推荐
  • 2026年深圳PLC培训机构甄选指南:正规合规产业适配型机构实力盘点,避坑FAQ与靠谱机构推荐全解析 - 产业观察报
  • Cloudflare Kitesurf:边缘计算中的轻量级浏览器自动化新方案
  • 轻松学习yocto: 10-Yocto 学习路线
  • 2026主流新闻媒体发稿渠道测评|AI时代品牌传播GEO优化新标准深度解析 - GEORANK