public class UfTree implements UF { private int array[]=null; public UfTree(int n) { array=new int[n]; for(int i=0;i<array.length;i++){ array[i]=i; } } public void union(int p, int q) { int a=root(p); int b=root(q); array[a]=b; } /** * 查找根树 * @param i * @return */ public int root(int i){ while (i!=array[i]){ i=array[i]; } return i; } public boolean connected(int p, int q) { return root(q)==root(p); } public static void main(String[] args) { UfTree uf=new UfTree(10); uf.union(1,2); System.out.println(uf.connected(1,2)); uf.union(2,4); System.out.println(uf.connected(2,4)); } }