并查集 路径压缩(模板+详解(狗头))

int Find(int xa){
    int xb=xa;  //把初始值赋给b 
    while(xa!=fa[xa]){
        xa=fa[xa];  //找到a的祖先节点 
    }
    while(xb!=xa){  //直到b==a为止 
        int temp=fa[xb]; //设一个中间变量为b的父亲节点 
        fa[xb]=xa; //直接让b的父亲节点为a的祖先节点 
        xb=temp;  //b等于b的父亲节点 
    }
    return xa;
}

 

posted @ 2020-03-28 17:42  ZMWLxh  阅读(201)  评论(0编辑  收藏  举报