#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
int n, m, s;
bool mp[1010][1010];
int ph[1100];
int vis[1100];
int cnt;
void creat()
{
memset(mp,0,sizeof(mp));
int u, v;
cnt = 0;
memset(ph,0,sizeof(ph));
memset(vis,0,sizeof(vis));
for(int i = 0; i < m; i++)
{
cin>>u>>v;
mp[u][v] = mp[v][u] = 1;
}
}
void dfs(int x)
{
vis[x] = 1;
ph[cnt++] = x;
for(int i = 1; i <= n; i++)
{
if(mp[x][i] && !vis[i])
{
dfs(i);
ph[cnt++] = x;
}
}
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d",&n,&m,&s);
creat();
dfs(s);
// if(k < 2*n-1)
//{
// for(int i = 0; i < )
//}
//else
//{
for(int i = 0; i < cnt; i++)
{
cout<<ph[i];
if(i < cnt-1)
cout<<" ";
}
if(cnt < 2*n-1)
{
cout<<" "<<"0";
}
cout<<endl;
//}
}
return 0;
}
SDUTOJ3361-数据结构实验之图论四:迷宫探索
最新推荐文章于 2020-05-13 10:03:27 发布