递归版并查集模板
class Unionfind{
private:
vector<int> parents;
public:
//初始化每个点,每个点的父亲节点都指向自己
Unionfind() {
for(int i=0;i<26;i++){
parents.push_back(i);
}
}
//查找根节点
int find(int index){
if(parents[index]==index){
return index;
}
parents[index]=find(parents[index]);
return parents[index];
}
//将两个点合并,都指向同一个根节点
void Union(int index1,int index2){
parents[find(index1)]=find(index2);
}
//判断两个节点是否在同一个集合中
bool isUnion(int index1,int index2){
if(find(index1)==find(index2)){
return true;
}
return false;
}
};