0分求助
查看原帖
0分求助
490484
include13_fAKe楼主2023/2/14 13:31
#include<iostream>
#include<vector>
#include<queue> 
using namespace std;
const int N=100005;

int n,m;
vector<int> g[N];
queue<int> q;
bool had[N];
void DFS(int now){
	printf("%d ",now);
	had[now]=true;
	for(int i=0;i<g[now].size();i++){
		if(had[g[now][i]]==false)	DFS(g[now][i]);
	}
	return ;
}
void BFS(){
	while(!q.empty()){
		int now=q.front();
		for(int i=0;i<g[now].size();i++){
			if(had[g[now][i]]==true){
				had[g[now][i]]=false;
				q.push(g[now][i]);
				printf("%d ",g[now][i]);
			}
		}
		q.pop();
	}
	return ;
}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=m;i++){
		int x,y;
		scanf("%d%d",&x,&y);
		g[x].push_back(y);
	}
	DFS(1);
	q.push(1);
	printf("\n1 ");
	had[1]=false;
	BFS();
	return 0;
} 
2023/2/14 13:31
加载中...