The Solution –Step 131245{1} {2} {3} {4} {5}모든 원소가 자신이 속한 집합의 대표값
12.
The Solution –Step 231245{1, 2} {3} {4} {5}집합 1, 2가 합쳐진 집합의 대표값은2
13.
The Solution –Step 331245{1, 2} {3} {4, 5}집합 4, 5가 합쳐진 집합의 대표값은5
14.
The Solution –Step 431245{1, 2, 4, 5} {3}집합 {1, 2}, {4, 5}가 합쳐진 집합의 대표값은5
15.
The SolutionQ: 원소a와 원소 b가 같은 집합에 있는지 확인하는 방법은?31245A: 원소가 속한 집합의 대표값을 비교한다!같으면 O 다르면 X
16.
Basic Functions1. CREATE_SET(x)원소 x를 유일한 원소로 갖는 집합 생성2. MERGE_SETS(x, y) x가 속한 집합과 y가 속한 집합을 통합3. FIND_SET(x)x가 속한 집합의 대표값 또는 그에 대한 포인터를 리턴
17.
Basic FunctionsPseudo CodeReadN; for (each person x from 1 to N) CREATE-SET(x);for (each pair of friends (x y) ) if (FIND-SET(x) != FIND-SET(y)) MERGE-SETS(x, y);
18.
LL Implementation원소 하나가한 개의 노드각 노드는대표 노드를 가리키는 포인터와다음 노드를 가리키는 포인터를 갖는다.1122{1} ← {2} Merge의 경우
19.
LL Implementation다수의 원소를갖는 집합끼리의 Merge는?한 집합의 대표노드를 그대로 다른 집합의 꼬리 노드에Append (즉, 앞 집합의 꼬리 노드의Next 포인터를 뒷 집합의 대표 노드로 이어줌)뒷 집합에 속한 각 노드의 대표 노드 포인터를모두 앞 노드의 대표 노드로 이어준다.