シンボル
| データ | ||
|---|---|---|
| ランク | rank | |
| 集合の合併 | ||
|---|---|---|
| 指定された2つのノードのそれぞれの根(代表)を求めます。 | root1 ← findSet(x) root2 ← findSet(y) | |
| 合併する根(代表)を指します。 | root1, root2 | |
| 根のランクを比較します。 | if rank[x] > rank[y]: | |
| 選ばれた新しい根(代表)を指します。 | xまたはy | |
| ランクを1増やします。 | rank[y]++ | |
| 親を書き換えます。 | parent[?] ← ? | |
| 経路圧縮を行います。 | parent[x] ← findSet(parent[x]): | |
アニメーション
集合の合併