并查集的实现的应用

并查集的实现的应用_第1张图片

那么在一个数据结构中,怎么会有多棵树呢??

现招了10名学生,来自不同的学校,刚开始互相不认识,给10名学生编号 :{0,1,2,3,4,5,6,7,8,9};,数组中的数字代表:改集体中具有的成员个数(刚开始我们把每一个学生当成集体)

并查集的实现的应用_第2张图片

并查集就是要在一堆的数据当中,分出不同的集合,并能查到某个数据是属于那个集合的

10名学生去旅游,在旅游的路上,有的学生互相认识,之后组成了群体,结伴旅行,这时候我们就形成了一个一个的集合

就假如   s1={0,6,7,8} , s2={1,4,9}      ,   s3={2,3,5}  ,这三个小分队内的成员互相认识,这样就形成了3个集合,并把编号为  0  1  2的三名学生分别作为小分队的队长

并查集的实现的应用_第3张图片

我们如何通过10名同学的名字,进行编号??

并查集的实现的应用_第4张图片

---------------------------------------------------------------------------------------------------------------------------------

并查集的实现的应用_第5张图片

特点 :

1.一个位置的值的是负数,那它就是这颗树的根,这个负数的绝对值就是这棵树数据个数

2.一个位置的值 是正数,那它就是双亲的下标

--------------------------------------------------------------------------------------------------------------------------

并查集的实现

并查集的实现的应用_第6张图片

并查集的应用

并查集的实现的应用_第7张图片

省份的数量  : 联通的森林有多少个??

你可能感兴趣的:(数据结构高阶,算法,数据结构)