#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<queue>using namespace std;int k;queue<int> q;bool vis[2000];bool map[2000][2000];void bfs(int x){ int i; q.push(x); while(!q.empty()) { int top=q.front(); q.pop(); for(i=0;i<k;i++) { if(map[top][i] && !vis[i]) { vis[i]=true; printf(" %d",i); q.push(i); } } } return ;}int main(){ int t; scanf("%d",&t); while(t--) { while(!q.empty()) q.pop(); memset(vis,0,sizeof(vis)); memset(map,0,sizeof(map)); int m,i,a,b; scanf("%d%d",&k,&m); for(i=0;i<m;i++) { scanf("%d%d",&a,&b); map[a][b]=map[b][a]=1; } vis[0]=true; printf("0"); bfs(0); for(i=1;i<k;i++) if(!vis[i]) { vis[i]=true; printf(" %d",i); bfs(i); } printf("\n"); } return 0;}
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<queue>using namespace std;int k;bool vis[2000];bool map[2000][2000];void dfs(int x){ int i; for(i=1;i<k;i++) { if(map[x][i] && !vis[i]) { vis[i]=true; printf(" %d",i); dfs(i); } }}int main(){ int t; scanf("%d",&t); while(t--) { memset(vis,0,sizeof(vis)); memset(map,0,sizeof(map)); int m,i,a,b; scanf("%d%d",&k,&m); for(i=0;i<m;i++) { scanf("%d%d",&a,&b); map[a][b]=map[b][a]=1; } vis[0]=true; printf("0"); dfs(0); for(i=1;i<k;i++) if(!vis[i]) { vis[i]=true; printf(" %d",i); dfs(i); } printf("\n"); } return 0;}