图的深度遍历
2015-11-24 16:24
239 查看
图的深度遍历
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
请定一个无向图,顶点编号从0到n-1,用深度优先搜索(DFS),遍历并输出。遍历时,先遍历节点编号小的。输入
输入第一行为整数n(0 < n < 100),表示数据的组数。 对于每组数据,第一行是两个整数k,m(0 < k < 100,0 < m < k*k),表示有m条边,k个顶点。 下面的m行,每行是空格隔开的两个整数u,v,表示一条连接u,v顶点的无向边。输出
输出有n行,对应n组输出,每行为用空格隔开的k个整数,对应一组数据,表示DFS的遍历结果。示例输入
1 4 4 0 1 0 2 0 3 2 3
示例输出
0 1 2 3
提示
来源
示例程序
#include<stdio.h> #include<string.h> int map[200][200],visited[10000],pum[10000]; int k,t,sum; void DFS(int x) { int i; visited[x]=1; pum[sum++]=x; for(i=0;i<k;i++) if(visited[i]==0&&map[x][i]) DFS(i); } int main() { int i,j,n,m,l; scanf("%d",&n); while(n--) { sum=0; scanf("%d %d",&k,&t); memset(map,0,sizeof(map)); for(l=0;l<t;l++) { scanf("%d %d",&i,&j); map[i][j]=1; map[j][i]=1; } memset(visited,0,sizeof(visited)); for(i=0;i<k;i++) { if(visited[i]==0) DFS(0); } for(i=0;i<sum;i++) if(i==0) printf("%d",pum[i]); else printf(" %d",pum[i]); printf("\n"); } }
相关文章推荐
- Maven学习总结(一)——Maven入门
- PE总结3---PE文件结构DOS文件头
- iOS_九宫格代码
- SOJ 1717 Computer (单机任务调度)
- [LeetCode]题解(python):061-Rotate List
- sql: sql developer使用
- 我的第五个java程序 每过10秒读取一次天气 并把天气更新到mysql数据库里
- 实现动态顺序表
- iOS 图形图像处理 二 :Core Graphics 、Core Image and GPUImage
- Redhat安装*.bin软件包(三)
- 同一个页面多个div,ajax调用
- C#调用Web Service时的身份验证
- crawler: 爬虫的基本结构
- poj 1469 COURSES 匈牙利算法
- iOS中如何使用PCH文件、修改其相对路径的方法
- iOS深入学习 (Block全面分析)
- iOS --- 自定义过渡
- Servlet程序开发-- 过滤器
- Protocol Buffer Basics: Python
- 给VC++6.0加快捷注释和取消注释