数据结构实验之图论二:图的深度遍历
来源:互联网 发布:小米 金属 贵 知乎 编辑:程序博客网 时间:2024/05/14 04:26
数据结构实验之图论二:图的深度遍历
Time Limit: 1000MS Memory Limit: 65536KB
SubmitStatistic
Problem Description
请定一个无向图,顶点编号从0到n-1,用深度优先搜索(DFS),遍历并输出。遍历时,先遍历节点编号小的。
Input
输入第一行为整数n(0 < n < 100),表示数据的组数。 对于每组数据,第一行是两个整数k,m(0 < k < 100,0 < m < k*k),表示有m条边,k个顶点。 下面的m行,每行是空格隔开的两个整数u,v,表示一条连接u,v顶点的无向边。
Output
输出有n行,对应n组输出,每行为用空格隔开的k个整数,对应一组数据,表示DFS的遍历结果。
Example Input
14 40 10 20 32 3
Example Output
0 1 2 3
#include <iostream>#include <cstdio>#include<cstring>using namespace std;#define MVN 110int visit[MVN];typedef struct AdjMatrix{ int w; /*char *info;*/}AM;typedef struct MGraph{ int vex[MVN];//存储点 AM arc[MVN][MVN];//点与点是否联通 int vexn,arcn;//vexn表示点数 arcn表示边数}MG;void creat(MG &G){ int i,j,k; for(i=0;i<G.vexn;i++) for(j=0;j<G.vexn;j++) G.arc[i][j].w=0; for(k=0;k<G.arcn;k++) { cin >> i >> j ; G.arc[i][j].w = G.arc[j][i].w=1; }}void DFS(MG &G,int i){ if(i==0) cout << i ; else cout <<" " << i; visit[i] = 1; int k; for(k=0;k<G.vexn;k++) if(G.arc[i][k].w==1&&visit[k]==0) DFS(G,k);}int main(){ int t; cin >> t; while(t--) { MG G; cin >> G.vexn >> G.arcn; creat(G); memset(visit,0,sizeof(visit)); DFS(G,0); cout << endl; } return 0;}
阅读全文
0 1
- 数据结构实验之图论二:图的深度遍历
- 数据结构实验之图论二:图的深度遍历
- 数据结构实验之图论二:图的深度遍历
- 数据结构实验之图论二:图的深度遍历
- 数据结构实验之图论二:图的深度遍历
- 数据结构实验之图论二:图的深度遍历
- 数据结构实验之图论二:图的深度遍历
- 数据结构实验之图论二:图的深度遍历
- 数据结构实验之图论二:图的深度遍历
- 数据结构实验之图论二:图的深度遍历
- 数据结构实验之图论二:图的深度遍历
- 数据结构实验之图论二:图的深度遍历
- 数据结构实验之图论二:图的深度遍历
- 2107 数据结构实验之图论二:图的深度遍历
- 数据结构实验之图论二:图的深度遍历
- 数据结构实验之图论二:图的深度遍历
- 数据结构实验之图论二:图的深度遍历
- 数据结构实验之图论二:图的深度遍历
- TensorFlow中的Nan值的陷阱
- VMware虚拟机配置Ubuntu桥接方式(Bridged)使虚拟机和宿主机能互相ping通
- 【JAVA】枚举使用详解
- Android 中的混淆技术
- SSH 三大框架整合
- 数据结构实验之图论二:图的深度遍历
- maven环境配好了,执行mvn -v命令,提示mvn不是内部或外部命令
- [2017-11-21] Windows环境下利用批处理命令快速删除大量文件
- HTML常用标签及约束
- 杭电oj1002,简单理解,复杂解法
- 用扎克伯格定律看信息共享
- C++ 修饰符类型
- HBase源码系列(六)HBase存储结构与StoreFile存储格式
- Linux环境配置一-SVN配置