各位大佬,I'm sorry,上次第一次发帖忘了放代码,So, help me!:
#include<iostream>
#include<vector>
#include<queue>
#include<cstring>
using namespace std;
int n,m,u,v;
vector<int>g[100010];
int vis[100010];
queue<int>q;
int s[100010];
void bfs(int x){
vis[x]=1;
q.push(x);
while(!q.empty()){
int t=q.front();
q.pop();
cout<<t<<' ';
for(int i=0;i<g[t].size();i++){
int tt=g[t][i];
if(!vis[tt]){
vis[tt]=1;
q.push(tt);
}
}
}
}
void dfs(int x,int c){
if(c==n){
return ;
}
vis[x]=1;
cout<<x<<' ';
for(int i=0;i<g[x].size();i++){
int text=g[x][i];
if(!vis[text]){
dfs(text,c+1);
}
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>u>>v;
g[u].push_back(v);
}
dfs(1,0);
cout<<endl;
memset(vis,0,sizeof(vis));
bfs(1);
return 0;
}