数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历
来源:互联网 发布:淘宝食品店铺装修 编辑:程序博客网 时间:2024/06/07 02:03
problem
Problem Description
给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索(BFS)遍历,输出从某个顶点出发的遍历序列。(同一个结点的同层邻接点,节点编号小的优先遍历)
Input
输入第一行为整数n(0< n <100),表示数据的组数。
对于每组数据,第一行是三个整数k,m,t(0<k<100,0<m<(k-1)*k/2,0< t<k),表示有m条边,k个顶点,t为遍历的起始顶点。
下面的m行,每行是空格隔开的两个整数u,v,表示一条连接u,v顶点的无向边。
Output
输出有n行,对应n组输出,每行为用空格隔开的k个整数,对应一组数据,表示BFS的遍历结果。
Example Input
1
6 7 0
0 3
0 4
1 4
1 5
2 3
2 4
3 5
Example Output
0 3 4 2 5 1
Hint
以邻接矩阵作为存储结构。
Author
code
#include <iostream>#include <memory.h>using namespace std;int g[1010][1010];int visit[110];int q[110];int k,m,t;int a=0,j=1;void bfs(int n){ a++; for(int i=0;i<k;i++) { if(g[n][i]==1&&visit[i]==0) { q[j++]=i; visit[i]=1; } } if(a<=j) bfs(q[a]);}int main(){ int n; int i; int u,v; cin >> n; while(n--) { memset(g,0,sizeof(g)); memset(visit,0,sizeof(visit)); cin >> k >> m >> t; for(i=0;i<m;i++) { cin >> u >> v; g[u][v]=g[v][u]=1; } q[0]=t; visit[t]=1; bfs(t); for(i=0;i<k;i++) { if(i==k-1) cout << q[i] << endl; else cout << q[i] << " "; } } return 0;}
阅读全文
0 0
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 基于git的代码版本管理规范及流程-简版
- 求一个3*3矩阵对角线元素之和。
- Python,对字符串操作
- 经典排序算法
- iscsi
- 数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历
- 模板类与友元函数:关于LNK1120和LNK2019报错
- 马未都谈教育
- 一只程序猿的养成日记 第一章 第六节 栈帧结构
- make_pair的用法以及替代make_pair的结构体以及广度优先搜索
- Spring的ioc入门案例
- 38 Three.js高级材质THREE.ShaderMaterial
- String和StringBuffer
- 1040. 有几个PAT(25)