邻接矩阵的深度遍历

sdut 2107  图的深度遍历

 
  
 1 #include<stdio.h>
 2 #include<string.h>
 3 int map[110][110], vis[110];
 4 int m, n, flag;
 5 void dfs (int i)
 6 {
 7     int j ;
 8     vis[i] = 1;
 9     if( flag == 1)
10        {
11            printf("%d",i);
12            flag = 0;
13        }
14     else printf(" %d",i);
15     for( j=0; j<n; j++ )
16     {
17         if( !vis[j] && map[i][j] == 1 )
18             dfs(j);
19     }
20 
21 
22 }
23 int main ()
24 {
25     int t, a, b;
26     scanf( "%d" , &t );
27     while( t-- )
28     {
29         memset( vis, 0, sizeof(vis));
30         memset( map, 0, sizeof(map));
31         scanf( "%d %d", &n ,&m);
32         flag = 1;//flag标记是否输出空格。
33         for(int i = 0; i< m; i++)
34         {
35             scanf( "%d %d ",&a, &b);
36             map[a][b] = map[b][a] =1;//无向图。
37         }
38             dfs (0);
39             printf( "\n" );
40 
41     }
42     return 0;
43 



 
  
 
 

转载于:https://www.cnblogs.com/LK1994/archive/2013/03/30/2990974.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值