并查集详解及应用
什么是并查集
并查集是一种数据结构,由一个整型的数组和两个函数构成,本质是树,可以及解决很多图的问题。
整型数组:记录了每个点的前导点;
函数find():用于查找根节点;
函数join():合并;
自定义的并查集类代码如下
class JoinFind {
int[] pre;
//构造
public JoinFind(int n) {
pre = new int[n];
for(int i=0; i<n; ++i) {
pre[i] = i;
}
}
//查找根节点
public int find(int index) {
if(pre[index] != index) {
pre[index] = find(pre[index]);
}
return pre[index];
}
//合并
public void join(int index1, int index2) {
pre[find(index1)] = find(index2);
}