并查集-快速合并——quick_union


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));
}
}

浙公网安备 33010602011771号