**并查集**
在计算机科学中,并查集是一种树型的数据结构,用于处理一些不交集 (Disjoint Sets)的合并及查询问题。有一个联合-查找算法(union find algorithm)定义了两个用于此数据结构的操作:
①初始化:将每个节点的父节点(根节点)都设为自身;
②Find:
查询该节点的根节点,循环或递归直到某个节点的父节
点自身;
③union: 将两个节点合并到同一集合,方法是用Find方法查找两
节点的根节点,然后让这两个根节点进行union操作,
即其中一个节点的父节点是是另一个节点(顺序可调换)
int find(int x){
if(pre[x] == x){
return x;
}
return pre[x] = find(pre[x]);
}
void unit(int x, int y){
pre[find(x)] = find(y);
}