#include<bits/stdc++.h>
using namespace std;
int n,m,s,cou;
int mp[1500][1500],vis[1500],a[1500];
void DFS(int s)
{
a[cou++]=s;
vis[s]=1;
for(int i=1;i<=n;i++)
if(!vis[i]&&mp[s][i])
{
DFS(i);
a[cou++]=s;
}
}
int main()
{
ios::sync_with_stdio(false);
int t;
cin>>t;
int u,v;
while(t--)
{
cou=0;
cin>>n>>m>>s;
memset(mp,0,sizeof(mp));
memset(vis,0,sizeof(vis));
for(int i=0;i<m;i++)
{
cin>>u>>v;
mp[u][v]=mp[v][u]=1;
}
DFS(s);
for(int i=0;i<cou;i++)
{
if(!i)
cout<<a[i];
else
cout<<" "<<a[i];
}
if(cou!=2*n-1)//如果走过的点的个数不是2*n-1,则证明没有把灯点亮
cout<<" "<<"0";
cout<<endl;
}
return 0;
}
3361 数据结构实验之图论四:迷宫探索
最新推荐文章于 2020-12-02 16:45:45 发布