(self, data: T)
| 24 | self.map[data] = DisjointSetTreeNode(data) |
| 25 | |
| 26 | def find_set(self, data: T) -> DisjointSetTreeNode[T]: |
| 27 | # find the set x belongs to (with path-compression) |
| 28 | elem_ref = self.map[data] |
| 29 | if elem_ref != elem_ref.parent: |
| 30 | elem_ref.parent = self.find_set(elem_ref.parent.data) |
| 31 | return elem_ref.parent |
| 32 | |
| 33 | def link( |
| 34 | self, node1: DisjointSetTreeNode[T], node2: DisjointSetTreeNode[T] |