图的广度优先遍历
来源:互联网 发布:ubuntu文件服务器搭建 编辑:程序博客网 时间:2024/03/29 17:37
题目
读入图的邻接矩阵以及一个顶点的编号(图中顶点的编号为从1开始的连续正整数。顶点在邻接矩阵的行和列上按编号递增的顺序排列。邻接矩阵中元素值为1,表示对应顶点间有一条边,元素值为0,表示对应顶点间没有边),输出从该顶点开始进行广度优先搜索(Breadth-First Search, BFS)的顶点访问序列。假设顶点数目<=100,并且,对于同一顶点的多个邻接顶点,按照顶点编号从小到大的顺序进行搜索
这是从sicily上找的题目
使用邻接矩阵储存图,主要就是易于声明。
BFS,可以简单的使用队列来实现,从初始点开始,将其相邻的点依次加入队列,然后输出队列就可以了
#include<iostream>#include<algorithm>#include<cstring>#include<queue>#include <vector>using namespace std;int g[101][101],vis[101];int n, s;void bfs(){ vis[s] = 1; queue<int> q; q.push(s); while (!q.empty()) { for (int i = 1; i <= n; ++i) if (g[q.front()][i] == 1 && !vis[i]) { q.push(i); vis[i] = 1; } cout << q.front(); q.pop(); if(q.size()>0) { cout<<" "; } }}int main(){ cin >> n >> s; for (int i = 1; i <= n; ++i) for (int j = 1; j <= n; ++j) cin >> g[i][j]; bfs(); return 0;}
input
4 30 1 1 01 0 1 11 1 0 10 1 1 0
output
3 1 2 4
0 0
- 图的广度优先遍历
- 图的广度优先遍历
- 图的广度优先遍历
- 图的广度优先遍历
- 图的广度优先遍历
- 图的广度优先遍历
- 图的广度优先遍历
- 图的广度优先遍历
- 图的广度优先遍历
- 图的广度优先遍历
- 图的广度优先遍历
- 图的广度优先遍历
- 图的广度优先遍历
- 图的遍历-(深度优先&广度优先)
- 图的遍历:深度优先、广度优先
- 图的遍历-广度优先遍历
- 图的遍历- 广度优先遍历
- 图:图的遍历(深度优先遍历、广度优先遍历)
- Design各控件的搭配使用3
- Design各控件的搭配使用4
- QiYuAdmin-bootstrap.addtabs美化(SpringBoot实战)
- BZOJ4200: [Noi2015]小园丁与老司机 最小流
- iconify使用文本替换icon测试
- 图的广度优先遍历
- AppBarLayout.OnOffsetChangedListener的使用
- 程序运行时内存分布
- 多线程(十八)AQS(四):CLH同步队列
- Android百分比布局Percent支持库
- Android本地Json配置文件实现笔记
- ParallaxViewPager:ViewPager的视差背景效果
- tensorflow keras入门,深度学习跑起来
- 出现 com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error 异常的原因及解决方法