网站如何提高排名,手机网站怎么设置成电脑版的,无人机公司网站建设,网址在线生成二维码并查集的实现思路
并查集主要分为两个部分#xff1a;第一部分就是需要找到点对应的祖宗节点#xff0c;第二部分#xff0c;是要将属于同一个集合节点的祖宗节点进行统一#xff0c;也就是结合操作。
Find函数实现
// parent数组用来存储下标值所对应的父节点值
// 比如…并查集的实现思路
并查集主要分为两个部分第一部分就是需要找到点对应的祖宗节点第二部分是要将属于同一个集合节点的祖宗节点进行统一也就是结合操作。
Find函数实现
// parent数组用来存储下标值所对应的父节点值
// 比如parent[i]k,表示编号为i节点的父节点是编号为k的节点
int find(vectorint parent, int i){if(parent[i]-1){ //如果i节点没有父节点那么它自己就是它的祖宗节点换句话说也就是找到了最终的祖宗节点return i;}return find(parent,parent[i]); // 如果i节点有上一级节点就按照该线索它的父亲继续向上寻找直到找到祖宗节点为止。
}Union函数实现
void Union(vectorint parent, int i, int j){int p_i find(parent,i); // 找到i的祖宗节点int p_j find(parent,j); // 找到j的祖宗节点parent[p_i] p_j; // 这里可以随便写谁想当祖宗都可以合并i,j的祖宗节点return ;
}