(node, { parent } = this)
| 64 | } |
| 65 | |
| 66 | find(node, { parent } = this) { |
| 67 | let head = parent[node]; |
| 68 | |
| 69 | const isEqual = () => head === parent[head]; |
| 70 | while (!isEqual()) { |
| 71 | const tail = parent[parent[head]]; |
| 72 | |
| 73 | this.compress(head, tail); |
| 74 | head = parent[head]; |
| 75 | } |
| 76 | |
| 77 | return head; |
| 78 | } |
| 79 | |
| 80 | compress(tail, head, { parent } = this) { |
| 81 | parent[tail] = head; |