자료구조 알고리즘/이론
AVL Tree
내공얌냠
2023. 5. 7. 17:45
- Binary Search Tree의 속성을 가짐
- 왼쪽, 오른쪽 서브 트리의 높이 차이가 최대 1
- 삽입, 삭제, 검색 시 시간복잡도는 O(logN), N은 노드의 개수
- Node는 key, left node pointer, right node pointer, height 로 구성
Balance Factor
- 균형을 파악할 때 활용
- BF(k) = k의 왼쪽 서브트리의 높이 - k의 오른쪽 서브트리의 높이 (-1, 0, 1 중 하나)
Rotation
- RR, Right Rotation : 회전의 기준이 되는 노드가 오른쪽으로 감.
- LR, Left Rotation : 회전의 기준이 되는 노드가 왼쪽으로 감.
Case
LL(Left Left) Case : 중심 노드를 기준으로 왼쪽에 노드가 깊이 있는 경우 -> RR을 수행하여 균형을 맞춤
RR(Right Right) Case : 중심 노드를 기준으로 오른쪽에 노드가 깊이 있는 경우 -> LR을 수행하여 균형을 맞추
LR(Left Right) Case : 중심 노드의 왼쪽과 왼쪽 아래 오른쪽 자식 노드가 있는 경우 -> LR 이후 RR 수행
RL(Right Left) Case : 중심 노드의 오른쪽과 오른쪽 아래 왼쪽 자식 노드가 있는 경우 -> RR 이후 LR 수행
References
https://yoongrammer.tistory.com/72
[자료구조] AVL 트리(Tree)
목차 AVL 트리(Tree) 개념 및 구현 AVL 트리는 스스로 균형을 잡는 이진 탐색 트리입니다. 트리의 높이가 h일 때 이진 탐색 트리의 시간 복잡도는 O(h)입니다. 한쪽으로 치우친 편향 이진트리가 되면
yoongrammer.tistory.com
https://code-lab1.tistory.com/61
[자료구조] AVL트리란? AVL트리 쉽게 이해하기, AVL트리 시뮬레이터
AVL 트리란? 예전에 이진탐색트리에 대해 알아본적이 있다. [자료구조] 이진탐색트리(Binary Search Tree)의 개념, 이해 | C언어 이진탐색트리 구현 이진탐색트리(Binary Search Tree)이란? 이진탐색트리란
code-lab1.tistory.com
728x90
반응형