参考书:
《啊哈算法第五章:图的遍历》
《第一节。深度优先和广度优先究竟是啥》——广度优先 实现图的遍历
广度优先算法实现图的遍历代码如下:

#include <iostream>using namespace std;int book[101], n = 5, e[101][101];   //n为顶点个数
int que[10001], cur=1, head=1, tail=1;void bfs(int cur)   //广度优先搜索
{while(head<tail){cur = que[head];  //当前正在访问的顶点编号for(int i=1;i<=n;i++){//判断当前顶点cur与顶点i是否有边相连,并判断顶点i 是否已经访问过if(e[cur][i]==1&&book[i]==0){que[tail]=i;tail++;book[i]=1;  //标记顶点i已经访问过}if(tail>n)break;}head++;  //一个顶点扩展结束后,才head++。然后继续往下扩展。}return;
}void myPrint(int que[])
{for(int i=1;i<tail;i++){cout<<que[i]<<" ";}
}
int main()
{//定义一个二维数组表示顶点之间边int bian[5][2]={{1,2},{1,3},{1,5},{2,4},{3,5}};  //边的个数int num=sizeof(bian)/sizeof(bian[0]);  //边的个数//初始化二维矩阵efor(int i=1;i<=num;i++){for(int j=1;j<=num;j++){if(i==j)e[i][j]=0;elsee[i][j]=99999999;}}for(int i=1;i<=num;i++){e[bian[i-1][0]][bian[i-1][1]]=1;e[bian[i-1][1]][bian[i-1][0]]=1;}//从1号顶点出发,将1号顶点加入队列。que[tail]=1;tail++;book[1]=1;// int cur=1;bfs(cur);myPrint(que);cout<<endl;system("pause");return 0;
}

运行结果:

1 2 3 5 4
请按任意键继续. . .

(bfs)广度优先 实现图的遍历相关推荐

  1. [算法学习no7]图的遍历

    图的遍历分为两种 1.深度优先搜索 2.广度优先搜索 图的遍历难度在于图有闭环,双向 所以一定不要迷路 因此,需要用数组标记访问过的结点即可 1.深度优先搜索 传入参数为结点 输出这个结点 标记这个结 ...

  2. 数据结构与算法(7-2)图的遍历(深度优先遍历DFS、广度优先遍历BFS)(分别用邻接矩阵和邻接表实现)

    目录 深度优先遍历(DFS)和广度优先遍历(BFS)原理 1.自己的原理图 2.官方原理图 一.邻接矩阵的深度优先遍历(DFS) 1.原理图 2. 过程: 3.总代码 二.邻接表的深度优先遍历(DFS ...

  3. 数据结构之图的遍历:广度优先遍历(BFS)

    图的遍历:广度优先遍历 思维导图: 广度优先遍历的原理: 广度优先遍历的代码实现: 广度优先遍历的性能分析: 无权图单源最短路径问题: 广度优先生成树: 思维导图: 广度优先遍历的原理: 类似与树的层 ...

  4. 数据结构(廿五) -- C语言版 -- 图 - 图的遍历 -- 邻接矩阵 - 深度/广度优先遍历/搜索(DFS、BFS)

    内容预览 零.读前说明 一.概 述 二.深度优先遍历(DFS) 2.1.无向图的遍历过程 2.2.有向图的遍历过程 2.3.总结说明 2.4.实现源代码 三.广度优先遍历(BFS) 3.1.广度优先的 ...

  5. 数据结构(廿六) -- C语言版 -- 图 - 图的遍历 -- 邻接表 - 深度/广度优先遍历/搜索(DFS、BFS)

    内容预览 零.读前说明 一.深度优先遍历 1.1.深度优先的遍历过程 1.2.深度优先的遍历实现代码 二.广度优先遍历 2.1.广度优先的遍历过程 2.2.广度优先的遍历实现代码 三.源码测试效果 3 ...

  6. 图的遍历(深度优先遍历DFS,广度优先遍历BFS)以及C语言的实现

    遍历的定义: 从已给的连通图中某一顶点出发,沿着一些边访遍图中所有的顶点,且使每个顶点仅被访问一次,就叫做图的遍历,它是图的基本运算. 一:深度优先遍历(DFS) 1,在访问图中某一起始顶点V后,由V ...

  7. 图的遍历——广度优先搜索(Breadth First Search)

    2019独角兽企业重金招聘Python工程师标准>>> 1.广度优先搜索遍历类似于树的按层次遍历的过程. 假设从图中某顶点V出发,在访问了V之后依次访问V的各个未曾访问过得邻接点,然 ...

  8. 图的遍历:BFS和DFS

    前言 图是一种灵活的数据结构,一般作为一种模型用来定义对象之间的关系或联系.对象由顶点(V)表示,而对象之间的关系或者关联则通过图的边(E)来表示. 图可以分为有向图和无向图,一般用G=(V,E)来表 ...

  9. 【数据结构】图的遍历(BFS和DFS)

    图的遍历 图的遍历是指从图中的某一顶点出发,按照某种搜索方式沿着途中的边对图中所有顶点访问一次且仅访问一次.图的遍历主要有两种算法:广度优先搜索和深度优先搜索. 广度优先遍历BFS 广度优先遍历(BF ...

  10. bfs广度优先搜索算法_图的广度优先搜索(BFS)

    bfs广度优先搜索算法 What you will learn? 您将学到什么? How to implement Breath first search of a graph? 如何实现图的呼吸优先 ...

最新文章

  1. linux centos7 重启服务器报错 Run 'systemctl daemon-reload' to reload units
  2. 《鸟哥的Linux基础》
  3. python长沙_长沙python
  4. 扩展js对象数组的OrderByAsc和OrderByDesc方法
  5. _过程_函数_触发器_游标
  6. TensorFlow2.0项目实战:从模型搭建到工业化部署全链路!
  7. 据说学会这款数据分析工具,会被各大名企高薪哄抢
  8. 知网中的硕博论文是caj格式,如何用CAJ转PDF?
  9. Spark SQL 之开窗函数
  10. php sql注入防御方法,SQL注入防御的方法有哪些
  11. catia制作物料明细_CATIA课时:符合GB的物料清单模板设置视频教程_翼狐网
  12. php 公众号指定人发消息,微信公众号发送模板消息,发送消息到某个用户
  13. Java报表导出有哪些技术_报表工具能实现怎么的导出效果?
  14. Windows10中,如何改变鼠标光标(指针)的大小和颜色?
  15. 两种方法实现奇数和偶数的和(Java)
  16. 【DB笔试面试622】在Oracle中,说说COUNT(*)计算行数有哪些优化手段?
  17. 握手,交流从掌心开始
  18. C语言之有符号无符号整数取值范围
  19. 2021 46届icpc 南京
  20. 高校制作VR全景费用了解一下?

热门文章

  1. 升级总代分享思路_定档了!升级了!1月23日《我家那闺女》第二季要给你“好看”...
  2. txt乱码怎么恢复正常_键盘乱码怎么恢复
  3. 实习日志_护理实习日志
  4. TypeScript:语句
  5. 算法解题方法:求和问题preSum方法
  6. Vue:使用highCharts
  7. 论文笔记_S2D.15_2016-CVPR_ResNet_用于图像识别的深度残差学习网络
  8. opencv图像分析与处理(13)- 彩色图像处理基础:彩色模型与伪彩色图像处理
  9. 根据已有的WSDL文件进行WebService服务开发和部署
  10. 深度学习笔记(三)——GAN入门实现MNIST数据集