而如果find(1)返回的是 1,find(3)返回的是 3,我们就可能认为两个元素不在同一个集合里,而事实并不是这样。...为 false,使用简单查找;反之则使用了路径压缩
24 int find(int x, bool flag);
25 // 任意合并,将 y树作为 x的子树完成合并
26 void...unionSets(int x, int y, bool flag = true);
27 // 按大小求并
28 void unionSetsBySize(int x, int y,...bool flag = true);
29 // 按高度求并
30 void unionSetsByHeight(int x, int y, bool flag = true);
31...(int x, int y, bool flag)
57 {
58 x = find(x,flag); y = find(y,flag);
59 if ( s[x] <= s[y]