并查集的非递归和递归实现

code 防止爆栈空间

int find(int x){
    int p=x;
    while(p!=fa[p])
        p=fa[p];
    while(x!=p){
        int tmp=fa[x];
        fa[x]=p;
        x=tmp;
    }
    return x;
}

你可能感兴趣的:(并查集,图论)