유니온 파인드

veloger·2023년 1월 31일
0

목적 : 두 노드가 하나의 집합에 속하는지(연결되어 있는지) 확인

여러 노드가 있을 대 특정 2개의 노드를 연결 => 1개의 집합으로 묶는다(union) + 두 노드가 같은 집합에 속해 있는지 확인(find)

1. 초기화
=> 대표노드 저장배열

2. 노드끼리 연결(대표노드 끼리, 보통 작은 것을 대표노드로 한다.)

3. 대표노드를 찾는 find 연산

find ->
1. 대상 노드 배열에 index값과 value값이 동일한지 확인
2. 동일하지 않으면 value값이 가리키는 index 위치로 이동
3. 이동 위치의 index값과 value값이 같은 때까지 1~2 반복(재귀)
4. 대표 노드에 도달하면 재귀 함수를 빠져나오면서 거치는 모든 값을 대표노드 값으로 변경

0개의 댓글