第一次写BFS的题,从开始一脸懵逼到慢慢分析,期间没有看书没查博客,自己安静的做了四十分钟终于做出来了,满满的成就感,我很水,但是我很努力,Mr杰要努力!
#include<stdio.h>
#include<iostream>
#include<queue>
#include<cstring>
using namespace std;
int map[1000][100];
queue<int> q;
int k,m,t,u,v,to[1000],vis[1000];
void BFS()
{
q.push(t);
while(!q.empty())
{
int x=q.front();
if(!vis[x])
cout<<x<<" ";
q.pop();
vis[x]=1;
for(int j=0; j<m; ++j)
{
if(map[x][j]&&!vis[j])
q.push(j);
}
}
}
int main()
{
int T;
cin>>T;
while(T--)
{
while(!q.empty())
q.pop();
memset(map,0,sizeof(map));
memset(vis,0,sizeof(vis));
cin>>k>>m>>t;
for(int i=0; i<m; ++i)
{
cin>>u>>v;
map[v][u]=map[u][v]=1;
}
BFS();
}
return 0;
}