并查集(判断一个图有几个连通块)

2014-11-23 21:39:22 · 作者: · 浏览: 4
import java.util.Scanner;

// 并查集 判断一个图中有几个联通块
public class UnionFind {
	private int[] father;//
	private int count;// 分量数量

	public UnionFind(int N){
		count=N;
		father=new int[N];
		for(int i=0;i
  
0){ int p=cin.nextInt(); int q=cin.nextInt(); // 若p q 已经在同一块中,则不需要采取任何行动 if(uf.connected(p,q)) continue; uf.union(p,q); System.out.println(p+" "+q); } System.out.println(uf.count()+" components"); } }