탐색 트리
탐색 트리란 탐색을 위한 트리 기반의 자료구조이다
삭제 연산의 3가지 경우
- 삭제하려는 노드가 단말(가장 마지막) 노드인 경우
- 삭제하려는 노드가 왼쪽이나 오른쪽 중 하나의 서브트리를 가지는 경우 (자식이 하나)
- 삭제하려는 노드가 2개의 서브트리를 모두 가지고 있는 경우 (자식이 둘)
이진탐색트리를 활용해 맵 클래스를 구현해보자
균형이진탐색(AVL)트리
AVL 트리는 모든 노드에서 왼쪽 서브트리와 오른쪽 서브트리의 높이 차가 1을 넘지 않는 이진탐색트리
* 평균, 최선, 최악의 경우 모두 시간 복잡도 O(logn)을 보장
탐색 연산은 기존 방식과 동일하지만 삽입/삭제 연산의 경우 균형 상태가 깨진다면
불균형 상태의 조상 노드(균형 인수 +-2)의 서브 트리들이 다시 재균형 (회전)
+ Red-Black Tree
'Computer Science > Algorithm' 카테고리의 다른 글
[HUFS/알고리즘] #1 알고리즘과 시간 복잡도 (1) | 2022.03.14 |
---|---|
[HUFS/자료구조] #10 그래프 (2) | 2021.12.09 |
[HUFS/자료구조] #8 트리 (0) | 2021.11.18 |
[HUFS/자료구조] #7 정렬과 탐색 (2) | 2021.11.12 |
[HUFS/자료구조] #6 연결 리스트 (0) | 2021.10.21 |