在下面的Quick Union算法实现中,在root方法中我们可以有一个if循环(例如if(i!= id [i])而不是while循环吗?我认为它的工作原理也一样。那么为什么他们使用了while循环吗?
public class QuickUnionUF {
private int []id;
public QuickUnionUF(int N){
id = new int[N];
for(int i=0; i<N; i++) id[i] = i;
}
private int root(int i){
while(i != id[i]) i = id[i];
return i;
}
public boolean connected(int p, int q){
return root(p) == root(q);
}
public void union(int p, int q){
int i = root(p);
int j = root(q);
id[i] = j;
}
}
答案 0 :(得分:1)
组件可以由高于一个级别的树表示。要获取组件ID,您需要一直向下到根。例如,尝试
$('#customer').html()