#include <bits/stdc++.h>
using namespace std;
int a[111][111];
vector<int>ans;
queue<int>q;
int book[111];
void bfs(int n)
{
while(!q.empty())
{
int t=q.front();
ans.push_back(t);
q.pop();
for(int i=0;i<n;i++)
{
if(a[t][i]==0)continue;
if(book[i]==1)continue;
q.push(i);
book[i]=1;
}
}
}
int main()
{
int t,n,m,x,y,st;
cin>>t;
while(t--)
{
cin>>n>>m>>st;
memset(a,0,sizeof(a));
memset(book,0,sizeof(book));
ans.clear();
while(m--)
{
cin>>x>>y;
a[x][y]=a[y][x]=1;
}
q.push(st);
book[st]=1;
bfs(n);
for(int i=0; i<n; i++)
{
if(i==n-1)
printf("%d\n",ans[i]);
else
printf("%d ",ans[i]);
}
}
return 0;
}
广度优先搜索(BFS)
最新推荐文章于 2022-04-05 02:45:23 发布