基于邻接矩阵的深度优先搜索(DFS)

时间:2022-10-11 05:36:35

题目:http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2107&cid=1186

 #include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<iostream>
#include<queue>
using namespace std;
int map[][],vis[],a[];
int n,m,k,j;
void dfs(int x)
{
int i;
for(i=; i<k; i++)
{
if((map[x][i]||map[i][x])&&vis[i]==)
{
vis[i]=;
a[++j]=i;
dfs(i);
}
}
};
int main()
{
int t,i,u,v;
scanf("%d",&n);
while(n--)
{
memset(map,,sizeof(map));
memset(vis,,sizeof(vis));
cin>>k>>m;
for(i=; i<m; i++)
{
cin>>u>>v;
map[u][v]=;
map[v][u]=;
}
t=; j=;
vis[]=;
dfs(t);
a[]=;
for(i=; i<=j-; i++)
printf("%d ",a[i]);
if(j>=)
printf("%d\n",a[i]);
}
}