【数据结构】用结构体实现并查集
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));//只要两个元素的祖先相同就可以
    }
}; 相关推荐
  computermaths    2020-06-01  
   田有朋    2020-04-30  
   lickylin    2020-02-22  
   waitwolf    2019-11-09  
   yishujixiaoxiao    2019-11-03  
   hanyujianke    2019-10-21  
   鱼天翱    2019-06-27  
   珠宝的故事    2018-06-02  
   vczh的日常    2018-05-25  
   BitTigerio    2018-04-16  
   心理学哲学批判性思维    2018-03-28  
   友心人    2018-03-21  
   BitTigerio    2018-03-19  
   ScalersTalk成长会    2018-03-05  
   ScalersTalk成长会    2018-03-05  
   HomoEconomicus    2018-02-17  
   SimonSsAlgo    2018-02-03  
   迷思    2018-01-11  
 