0pts dalao 995
查看原帖
0pts dalao 995
939326
tangfanhao楼主2023/10/2 11:17
#include<bits/stdc++.h>
using namespace std;
int x,y,n,m;
bool vis[100005],viis[100005];
vector<int> ans[100005];
void dfs(int k){
	cout<<k<<" " ;
	for(int i=0;i<ans[k].size();i++){
		if(vis[ans[k][i]]==0){
			vis[ans[k][i]]=1;
			dfs(ans[k][i]);
		}
	}
}
void bfs(int k){
	queue<int> q;
	q.push(k);
	while(q.size()!=0){
		int t=q.front();
		cout<<t<<" ";
		for(int i=0;i<ans[t].size();i++){
			if(viis[ans[t][i]]==0){
				viis[ans[t][i]]=1;
				q.push(ans[t][i]);
			}
		}
		q.pop();
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>x>>y;
		ans[x].push_back(y);
	}
	vis[1]=1;
	dfs(1);
	cout<<endl;
	viis[1]=1;
	bfs(1);
	return 0;
}
2023/10/2 11:17
加载中...