- 记录所有节点的父节点,也就是属于哪一个集合。
public static int[] father;
- find 查找节点属于哪一个集合
public static int find(int x) {
return x == father[x] ? x : (father[x] = find(father[x]));
}
- 合并两个节点到一个集合
public static void unite(int x, int y) {
father[find(y)] = find(x);
}
- 判断两个节点是否属于同一个集合
public static boolean check(int x, int y) {
return find(x) == find(y);
}