图的深度遍历
来源:互联网 发布:艺术家 知乎 编辑:程序博客网 时间:2024/05/22 14:37
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
1
4 4
0 1
0 2
0 3
2 3
Example Output
0 1 2 3
Hint
Author
#include<stdio.h>#include<string.h>#include<stdlib.h>int a[110][110];//邻接矩阵_Bool visit[10010];void dfs(int x, int k){ visit[x] = 1;//标记已经走过 int i; for(i = 0; i < k; i++) { if(!visit[i] && a[x][i])//从第一个开始找 { printf(" %d", i); dfs(i, k);//递归调用 } }}int main(){ int n, m, k, u, v, i; scanf("%d", &n); while(n--) { memset(a, 0, sizeof(a)); memset(visit, 0, sizeof(visit)); scanf("%d%d", &k, &m); for(i = 0; i < m; i++) { scanf("%d%d", &u, &v); a[u][v]++; a[v][u]++;//无向 } printf("%d", 0); dfs(0, k); printf("\n"); } return 0;}
0 0
- 图的深度遍历
- 图的深度遍历
- 图的深度遍历
- 图的深度遍历
- 图的深度遍历
- 图的深度遍历
- 图的深度遍历
- 图的深度遍历
- 图的深度遍历
- 图的深度遍历
- 图的深度遍历
- 图的深度遍历
- 图的深度遍历
- 图的深度遍历
- 图的深度遍历
- 图的深度遍历
- 图的深度遍历
- 图的深度遍历
- ROS使用USB摄像头运行pi_face_tracker,进行人脸识别
- redis常用命令收集
- Flying to the Mars hdu1800 trie
- 148. Sort List(快排、归并)
- 长度单位换算表
- 图的深度遍历
- Jenkins 打包报错:Parsing POMs,FATAL: null,java.lang.StackOverflowError
- 模式 设计 原则
- [递推] BZOJ1037: [ZJOI2008]生日聚会Party
- linux内核移植-内核调试工具KGBD、DDD、GDB移植笔记
- 【Mybatis】---mybatis+mysql+ IntelliJ IDEA框架搭建+实例讲解
- 让ubuntu的man命令支持中文
- javascript自学笔记-第一篇
- 由于ls可在‘/bin’处找到,由于/bin不在PATH环境变量中,故无法找到该命令