SDUT ———— 2107 数据结构实验之图论二:图的深度遍历

数据结构实验之图论二:图的深度遍历

Time Limit: 1000 ms Memory Limit: 65536 KiB

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的遍历结果。

Sample Input

1
4 4
0 1
0 2
0 3
2 3

Sample Output

0 1 2 3




吐血 presetation error
#include<bits/stdc++.h>

using namespace std ;

int matrix[105][105],visit[105];
int k,m;

int DFS(int i)
{
      if(!visit[i]){
        visit[i] =1;
        visit[104] += 1;
        cout << i-1 ;
        if(visit[104] < k) cout<<" ";
      }
         for(int j =1; j <= k ; j++)
              if(!visit[j] && matrix[i][j])   DFS(j);
              return 0 ;
}

int main()
{
  int T;
  cin >>T;
  while(T-- > 0)
  {
      cin >> k >> m;
      int u,v;
      memset(matrix,0,sizeof(matrix));
      memset(visit,0,sizeof(visit));
      for(int j =1; j <= m ; j++)
     {
         cin >> u >> v ;
         matrix[u+1][v+1] = 1;
         matrix[v+1][u+1] = 1;
      }

      DFS(1);
        if(T != 0)
        cout << endl;
  }
     return 0;
}

 

posted on 2019-04-02 20:56  TigerDZ  阅读(109)  评论(0编辑  收藏  举报

导航