DFS
#include<iostream>
#include<algorithm>
using namespace std;
int array[1000][1000];
int book[1000];
int n;
int sum;
void dfs(int x)
{
cout<<x<<" ";
sum++;
if(sum>n)return;
for(int i=1;i<=n;i++){
if(array[x][i]==1&&book[i]==0)
{
book[i]=1;
dfs(i);
}
}
return ;
}
int main()
{
int m,a,b;
cin>>n>>m;
for(int i=0;i<=n;i++)
for(int j=0;j<=n;j++){
if(i==j)array[i][j]=0;
else array[i][j]=999999;
}
for(int i=0;i<m;i++){
cin>>a>>b;
array[a][b]=1;
array[b][a]=1; //无向图
}
book[1]=1;
dfs(1);
cout<<endl;
return 0;
}
BFS
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
int array[1000][1000];
int book[1000];
int n;
void bfs(int x)
{
queue<int> q;
while(!q.empty()){
q.pop();
}
q.push(x);
book[x]=1;
cout<<x<<" ";
while(!q.empty()){
int tx=q.front();
q.pop();
for(int i=1;i<=n;i++){
if(array[tx][i]==1&&book[i]==0){
cout<<i<<" ";
q.push(i);
book[i]=1;
}
}
}
return ;
}
int main()
{
int m,a,b;
cin>>n>>m;
for(int i=0;i<=n;i++)
for(int j=0;j<=n;j++){
if(i==j)array[i][j]=0;
else array[i][j]=999999;
}
for(int i=0;i<m;i++){
cin>>a>>b;
array[a][b]=1;
array[b][a]=1; //无向图
}
bfs(1);
cout<<endl;
return 0;
}
啦啦啦