P5318
#include<bits/stdc++.h>
using namespace std;
bool vis[10010];
queue <int> q;
struct t
{
vector <int> l;
}a[10010];
void dfs(int n)
{ cout<<n<<" ";
vis[n]=1;
if(a[n].l.size()==0)return ;
for(int i=0;i<=a[n].l.size()-1;i++)
{
if(vis[a[n].l[i]]==0)dfs(a[n].l[i]);
}
}
void bfs()
{
q.push(1);
cout<<1<<" ";
vis[1]=1;
while(!q.empty())
{
if(a[q.front()].l.size()==0)
{
q.pop();
continue;
}
for(int i=0;i<=a[q.front()].l.size()-1;i++)
{
if(vis[a[q.front()].l[i]]==0)
{
cout<<a[q.front()].l[i]<<" ";
vis[a[q.front()].l[i]]=1;
q.push(a[q.front()].l[i]);
}
}
q.pop();
}
}
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++)
{
int u,v;
cin>>u>>v;
a[u].l.push_back(v);
}
dfs(1);
cout<<endl;
memset(vis,0,sizeof(vis));
bfs();
}
为什么错?