10分
WA代码如下↓↓
#include<bits/stdc++.h>
using namespace std;
vector<int>G[100001];
bool vis[100001]={0};
bool vis2[100001]={0};
void dfs(int x){//深度优先遍历
cout<<x<<' ';
for (int i=0,s=G[x].size();i<s;i++){
if (!vis[G[x][i]]){
vis[G[x][i]]=true;
dfs(G[x][i]);
}
}
}void bfs(int n){//广度优先遍历
queue<int>q;
int v;
q.push(1);
while (!q.empty()){
vis2[v]=1;
if (q.empty())return;
v=q.front();
cout<<v<<' ';
q.pop();
for (int j=0,s=G[v].size();j<s;j++){
if (!vis2[G[v][j]]){
vis2[G[v][j]]=1;
q.push(G[v][j]);
}
}
}
}
int main(){
ios::sync_with_stdio(false);
int n,m,x,y;
cin>>n>>m;
for (int i=0;i<m;i++){
cin>>x>>y;
G[x].push_back(y);
}for (int i=1;i<=n;i++){//按照题目的说法,就排了一下序
sort(G[i].begin(),G[i].end());
}
vis[1]=true;
dfs(1);
cout<<endl;
bfs(n);
return 0;
}
用vector做的,不知道哪错了,样例过了。