本文共 361 字,大约阅读时间需要 1 分钟。
递归版本:
int find_set(int x)// 找到根节点 { if(parent[x] == x) return x; return parent[x] = find_set(parent[x]);// 路径压缩 提高查找效率 }
int find_set(int x) { int k, r, j; r = x; while(r != parent[r]){ // 找到根节点 r = parent[r]; } k = x; //从要找的节点开始 非递归压缩 while(k != r){ j = parent[k]; //记录当前结点的parent[k] 向上 推进 parent[k] = r; k = j; } return r; }
转载地址:http://sximi.baihongyu.com/