1 6 7 0 0 3 0 4 1 4 1 5 2 3 2 4 3 5
0 3 4 2 5 1
1 #include<stdio.h> 2 #include<string.h> 3 int map[101][101]; 4 int vis[101],que[101]; 5 int m,k,t,flag; 6 void bfs(int t) //广度优先遍历 7 { 8 int l=0,r=0,j; 9 int i; 10 que[r]=t; 11 r++; 12 for(i=0;i<r;i++) 13 { 14 15 l++; 16 if(flag==1) 17 { 18 printf("%d",que[l-1]); 19 flag=0; 20 } 21 else 22 printf(" %d",que[l-1]); 23 for(j=0;j<k;j++) 24 { 25 if(!vis[j]&&map[que[l-1]][j]) 26 { 27 que[r]=j; 28 r++; 29 vis[j]=l; 30 } 31 } 32 } 33 } 34 int main() 35 { 36 int h,n,i,u,v; 37 scanf("%d",&n); 38 for(h=1;h<=n;h++) 39 { 40 memset(vis,0,sizeof(vis)); 41 memset(map,0,sizeof(map)); 42 scanf("%d %d %d",&k,&m,&t); 43 for(i=0;i<m;i++) 44 { 45 scanf("%d %d",&u,&v); 46 map[u][v]=1; 47 map[v][u]=1; 48 } 49 flag=1; 50 vis[t]=1; 51 bfs(t); 52 printf("\n"); 53 } 54 return 0; 55 }