不知道为什么不对,用邻接表和队列写的dfsbfs,求大佬帮忙啊1
#include<bits/stdc++.h>
using namespace std;
int n,m,u,v,ans1[100010],ans2[100010],tot=0;
bool vis[100010];
vector<int> G[100010];
queue<int>q;
inline void bfs(int x){
q.push(x);
vis[x]=1;
while(!q.empty()){
int y=q.front();
q.pop();
ans2[++tot]=y;
for(int i=0;i<(int)G[y].size();i++){
if(!vis[G[y][i]]){
vis[G[y][i]]=1;
q.push(G[y][i]);
}
}
}
}
inline void dfs(int x){
if(vis[x])return;
vis[x]=1;
ans1[++tot]=x;
for(int i=0;i<(int)G[x].size();i++){
dfs(G[x][i]);
}
}
inline void input(){
for(cin>>n>>m;m;--m){
int u=0,v=0;
scanf("%d%d",&u,&v);
G[u].push_back(v);
}
}
inline void init(){
memset(vis,0,sizeof(vis));
tot=0;
}
inline void solve(){
dfs(1);
for(int i=1;i<=tot;i++)cout<<ans1[i]<<' ';
cout<<endl;
init();
bfs(1);
sort(ans2+1,ans2+tot+1);
for(int i=1;i<=tot;i++)cout<<ans2[i]<<' ';
}
int main(void){
input();
solve();
return 0;
}