图的宽度优先搜索(数组实现)
来源:互联网 发布:网络连接中断 编辑:程序博客网 时间:2024/04/27 08:47
图的广度优先搜索(邻接矩阵)
Description
图采用邻接矩阵存储,图中的顶点数为n(0< n <20),顶点信息为整数,依次为
0,1,..,n-1。
编写函数,输入图的类型,0:无向图,1:有向图;输入图的顶点数、边数、边的偶
对,建立邻接矩阵;
编写函数,实现图的广度优先搜索,输出广度优先搜索序列。
调用上述函数,从0号顶点出发,输出图的广度优先搜索序列,以空格分隔
Input
第1行:图的类型 ( 0:无向图,1:有向图)
第2行:图的顶点数,边数
第3行开始,每行一个边的偶对,如vi,vj
Output
以空格分隔的广度优先遍历序列
Sample Input
0
6,7
0,1
0,2
0,4
1,4
2,5
3,4
3,5
Sample Output
0 1 2 4 5 3
#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;const int MAX(0x3f3f3f3f);int mp[30][30];int visit[30];int vexnum,arcnum;queue<int>q;void BFS(int k){ cout<<k<<" "; visit[k]=1; q.push(k); while(!q.empty()) { int t=q.front(); q.pop(); visit[t]=1; for(int i=0;i<vexnum;i++) { if(mp[t][i]&&!visit[i]) { cout<<i<<" "; visit[i]=1; q.push(i); } } }}void BfsTravel(int k){ memset(visit,0,sizeof(visit)); for(int i=0;i<vexnum;i++) { if(!visit[i]) BFS(i); }}int main(){ int flag=0; memset(mp,0,sizeof(mp)); cin>>flag; char ch; cin>>vexnum>>ch>>arcnum; for(int i=0;i<arcnum;i++) { int a,b; cin>>a>>ch>>b; if(!flag) mp[a][b]=mp[b][a]=1; else mp[a][b]=1; } BfsTravel(0);}
阅读全文
0 0
- 图的宽度优先搜索(数组实现)
- 图的宽度优先搜索
- 宽度优先搜索图
- 利用图的宽度优先搜索(层次遍历)实现查找从迷宫左上
- java 实现图的宽度优先遍历
- 深度优先搜索与宽度优先搜索的知识点归纳
- 生成图-深度优先搜索/宽度优先搜索
- 宽度优先搜索的复杂度分析
- 循环的深入-宽度优先搜索
- 宽度优先搜索 BFS
- 宽度优先搜索BFS
- 宽度优先搜索
- 宽度优先搜索
- 宽度优先搜索
- 宽度优先搜索
- 宽度优先搜索bfs
- 宽度优先搜索
- 宽度优先搜索算法
- localtime()函数:获取当前时间和日期并转换为本地时间
- 华为 网络技术工程师 2018秋招 于南京华为研究所面试经历
- 学习博文 如何正确使用Java异常处理机制
- 程序员如何赚「睡后」收入?
- 利用hexo和Github搭建个人免费博客
- 图的宽度优先搜索(数组实现)
- 技术积累,开篇
- 【jmeter-maven-plugin】三、高级配置之 -- 检测结果
- 高性能IO模型浅析
- django 新建一个用户表 替代系统中自带的user
- 【上云须知】全面了解阿里云能为你做什么
- java基础-异常
- hive sqoop常用命令
- 小白科普:分布式和集群