서로소 집합(상호베타 집합)이란?
중복되는 원소가 없는 집합
교집합이 공집합인 집합
-> 집합에 속한 특정 멤버(대표자)를 통해 집합을 구분
- 연결리스트 맨 앞 원소를 대표 원소로 잡기
- 자식노드가 부모노드를 가리키며, 루트노드가 대표자Make-Set(x):
p[x] <- x
Find-Set(x):
if x == p[x] : return x
else : return Find_Set(p[x])
Union(x,y):
if Find-Set(y) == Find-Set(x) return;
p[Find-Set(y)] <- Find-Set(x)
Find-Set(x):
if x == p[x] : return x
else : return p[x] = Find_Set(p[x])