코드로 확인합시다.
코드 13-4
def collapsing_find(self, i):
root = trail = lead = None
# 루트를 찾습니다.
root = i
while self.parent[root] >= 0:
root = self.parent[root]
# 모든 노드를 루트의 자식으로 만듭니다.
trail = i
while trail != root:
lead = self.parent[trail]
self.parent[trail] = root
trail = lead
return root
코드 13-4는 collapsing_find를 구현한 것입니다. i 노드의 루트 노드를 찾은 후 lead와 trail로 따라 올라가면서 모든 노드를 루트 노드의 자식 노드로 만듭니다.