码迷,mamicode.com
首页 > 其他好文 > 详细

【数据结构】用结构体实现并查集

时间:2020-04-08 22:47:17      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:turn   nio   路径压缩   优化   col   函数   pre   find   判断   

struct union_find_set
{
    int father[MAXN];//每个元素的祖先
    union_find_set(int limit)//构造函数,对于每一个元素,其父亲初始化为它本身
    {
        for(int i=1;i<=limit;i++)
        {
            father[i]=i;
        }
    }
    int find(int x)//找寻操作,使用路径压缩优化
    {
        if(father[x]!=x) father[x]=find(father[x]);
        return father[x];
    }
    void unite(int a,int b)//合并操作,实质是将一个集合的共同父亲赋值为另一个集合
    {
        father[b]=a;
    }
    bool isSameSet(int a,int b)//判断是否在同一个集合里
    {
        return (find(a)==find(b));//只要两个元素的祖先相同就可以
    }
};

 

【数据结构】用结构体实现并查集

标签:turn   nio   路径压缩   优化   col   函数   pre   find   判断   

原文地址:https://www.cnblogs.com/jiangyuechen/p/12663168.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!