有队列的概念就行。
<span style="font-size:14px;">#include <iostream>
#include <memory>
#include <cstring>
using namespace std;
const int maxn=10000;
int book[maxn];
int g[maxn][maxn];
int n,m,sum;
void bfs(int cur){
int que[maxn];int head,tail;
head=tail=cur;
que[head]=cur;
tail++;
while(head<tail){
int tmp = que[head++];
cout<<tmp<<" ";book[tmp]=1;
for(int i=1; i<=n; i++)
if(g[tmp][i]!=-1 && book[i]==0)
que[tail++]=i;
}
}
int main() {
// your code goes here
cin>>n>>m;int a,b;
memset(g,-1,sizeof(g));sum=0;
//for(int i=0; i<m ;i++)
for(int j=0; j<m ; j++)
{
cin>>a>>b;
g[a][b]=1;
g[b][a]=1;
}
bfs(1);
return 0;
}</span>