求助,过不去。。。。
查看原帖
求助,过不去。。。。
268245
ZZY_come_on楼主2021/2/28 19:22
import java.util.ArrayList;
import java.util.List;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Scanner;

public class Solutions {

	static int N,M;
	static List<Integer>[] list = null;
	static Queue<Integer> q = new PriorityQueue<Integer>();
	static int[] bfs = null;
	static int[] dfs = null;
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner sc = new Scanner(System.in);
		N = sc.nextInt();
		M = sc.nextInt();
		bfs = new int[N+1];
		dfs = new int[N+1];
		list = new ArrayList[N+1];
		for(int i=1;i<=N;i++) {
			list[i] = new ArrayList();
		}
		for(int i=0;i<M;i++) {
			int s = sc.nextInt();
			int e = sc.nextInt();
			list[s].add(e);
		}
	
		dfs(1);
		System.out.println();
		q.clear();
		bfs(1);
		
		
	}
	
	public static void bfs(int s) {
		bfs[s] = s;
		System.out.print(s+" ");
		q.add(s);
		while(!q.isEmpty()) {
			int node = q.poll();
			for(int i=0;i<list[node].size();i++) {
				int next = list[node].get(i);
				if(bfs[next] == 0) {
					q.add(next);
					bfs[next] = next;
					System.out.print(next+" ");
				}
			}
		}
	}
	
	
	public static void dfs(int s) {
		dfs[s]=s;
		System.out.print(s+" ");
		for(int i=0;i<list[s].size();i++) {
			int next = list[s].get(i);
			if(dfs[next] == 0) {
				dfs[next] = next;
				dfs(next);
			}
		}
	}
	
	
	

}

2021/2/28 19:22
加载中...