求助!这个bfs出了点bug!
#include <bits/stdc++.h>
#define N 10010
using namespace std;
int n,m;
bool vis[N];
int d[N];
struct Node{
int v;
Node(int _v){
v=_v;
}
};
vector <Node> a[N];
void dfs(int p){
cout<<p<<" ";
vis[p]=1;
for(int i=0;i<a[p].size();i++){
int t=a[p][i].v;
if(!vis[t]) dfs(t);
}
}
void bfs(){
memset(d,0,sizeof(d));
queue <int> q;
q.push(1);
d[1]=1;
while(q.size()){
int x=q.front();
q.pop();
cout<<x<<" ";
for(int i=0;i<a[i].size();i++){
int y=a[x][i].v;
if(!d[y]){
q.push(y);
d[y]=d[x]+1;
}
}
}
}
int main(){
cin>>n>>m;
int x,y;
for(int i=1;i<=m;i++){
cin>>x>>y;
a[x].push_back(Node(y));
a[y].push_back(Node(x));
}
memset(vis,false,sizeof(vis));
dfs(1);
cout<<endl;
bfs();
cout<<endl;
return 0;
}
/*
9 10
1 2
1 3
1 4
2 5
3 4
4 6
5 7
6 8
7 8
7 9
1 2 5 7 8 6 4 3 9
1 2 3 4 5 6 7 8 9
*/