由于之前并查集的代码,在查询(zhaodie)的过程中如果树的结构是每一行都是一个,在查找的过程中需要逐级往上,但是最终查到的祖先节点是一样的,因此可以把每个孙子节点或者是子节点的父节点全都设成祖先节点,查找的时候时间复杂度会减少很多代码如下:
int findfatherplus(int x){
if(father[x]!=x){
father[x]=findfather(father[x]);
}
return father[x];
}
由于之前并查集的代码,在查询(zhaodie)的过程中如果树的结构是每一行都是一个,在查找的过程中需要逐级往上,但是最终查到的祖先节点是一样的,因此可以把每个孙子节点或者是子节点的父节点全都设成祖先节点,查找的时候时间复杂度会减少很多代码如下:
int findfatherplus(int x){
if(father[x]!=x){
father[x]=findfather(father[x]);
}
return father[x];
}