并查集

初始化

即最开始让每个数的父节点为自己

for(i=1;i<=N;i++)
    {
        fa[i]=i;
    }

find函数

寻找这个数据的祖先

int find(int x)
{
    if(fa[x]==x)
        return fa[x]=x;
    else
        return fa[x]=find(fa[x]);
}

join函数

将两个数并为同一个祖先

void join(int x,int y)
{
    if(find(x)!=find(y))
    {
        fa[find(x)]=find(y);
    }
}
posted @ 2022-07-13 19:32  zyzzzzlh  阅读(32)  评论(0)    收藏  举报