-
数据结构-并查集
-
何为并查集
简述
并查集(Union Find)是一种用于管理分组的数据结构。它具备两个操作:(1)查询元素a和元素b是否为同一组 (2) 将元素a和b合并为同一组。
在一些应用问题中,我们常需把n个不同的元素划分成若干组不相交的集合,开始时各个元素自成单元素集合,然后按照一定条件将归于同一类的元素的集合合并,在此过程中需反复查询元素归属于哪个集合。
并查集结构
acm常常用到的模板,用父指针表示法表示树,也就是数组,数组的索引位置表示某个结点,第i个数组元素表示集合元素i的父结点。
用树表示的好处是易于合并,合并两个元素集合就是把一组的根与另一组的根相连
-
并查集的实现
初始化(Init):
刚开始的每个结点应该都是单元素集合,不妨初始化数组对应索引位置元素为-1,表示根结点为自身,也就是单元素集合
e:全集合是S = {0,1,2,3,4,5,6,7,8,9},初始化每个元素自成为一个单元素子集合