美文网首页
树的应用—并查集

树的应用—并查集

作者: 梦在原点 | 来源:发表于2019-08-26 16:53 被阅读0次

并查集是一种简单的集合表示
使用树的双亲表示法作为并查集的存储结构,通常使用数组元素的下标代表元素名,用根结点的下标代表子集合名,根结点的双亲结点为负数

操作如下

  • 将集合中的所有元素初始化为只有一个单元素的子集合



    初始化

    当集合变为一下情况时,存储结构变化如下


0的树上共有四个元素,所以0位置的双亲值为4,因为是根结点,值为-4。
3的双亲结点为2,所以双亲值为2。
剩余元素以此类推

代码实现并查集的操作
这里的S数组存储的是并查集里双亲结点的下标

#define SIZE 100
int  UFset[SIZE]

void Initial(int S[]){
    for (int i = 0; i < size; ++i)
    {
        S[i] = -1;
    }
}

int Find(int S[],int x){//要找出的是x元素所在树的根结点,因为根结点双亲值为负
    while(S[x]>=0)
        x = S[x];
    return x;
}


void Union(int S[],int Root1,int Root2){//合并就是把Roo2子集变为Root1的子集
    S[Root2] = Root1;
}

合并操作图解



Root1为0,Root2为1
合并操作之后S数组的变化

相关文章

  • 树的应用—并查集

    并查集是一种简单的集合表示使用树的双亲表示法作为并查集的存储结构,通常使用数组元素的下标代表元素名,用根结点的下标...

  • 并查集的应用

    并查集作为一种比较容易实现的数据结构,也是有着一些很重要的应用场景,在这里做一点总结并进行理解。 基础概念 并查集...

  • 神奇的数据结构---并查集

    并查集(Union Find)何为集,集合,用树表示;何为并,集合的合并(union);何为查,查询元素所属集合(...

  • 高级数据结构:并查集(Java 实现)

    并查集的内容非常简单,代码的每个方法的实现都很短,难在灵活应用。 并查集基础 为什么叫并查集?因为在这个数据结构中...

  • union find

    参考 并查集(disjoint set)的实现及应用

  • 算法与数据结构系列之[并查集-中]

    上篇介绍了并查集的基本实现,这篇介绍几种并查集的优化方法。 1.基于size优化: 上一篇当中树实现并查集的方法中...

  • C++ 实现并查集

    并查集 并查集实际上就是并集和查集的过程。集(集合)可以理解为一棵树,即一个根结点连着无数个子节点。 例题解析 输...

  • [并查集]并查集应用之婴儿姓名

    今天继续进行并查集的应用训练 题目 婴儿姓名[https://leetcode-cn.com/problems/b...

  • [并查集]并查集应用之打砖块

    继续并查集! 题目 打砖块[https://leetcode-cn.com/problems/bricks-fal...

  • markdown学习

    #并查集 ##并查集的定义 ##并查集的操作

网友评论

      本文标题:树的应用—并查集

      本文链接:https://www.haomeiwen.com/subject/yvkdectx.html