이진 트리(binary)
각 노드의 자녀 노드 수가 최대 2개 (left child/right child) 인 트리
이진 탐색 트리 (Binary Search Tree)
모든 노드의 왼쪽 서브 트리는 해당 노드의 값보다 작은 값들만 가진다
and 모든 노드의 오른쪽 서브 트리는 해당 노드의 값보다 큰 값들만 가진다
BF(x) = h(lSubtree(x)) - h(rSubtree(x))
임의의 노드 x에 대해서 성립함
- BF = Balance Factor
- h = height(높이)
- lSubtree = Left Subtree
- rSubtree = Right Subtree
임의의 노드 x에 대해서 성립함
오른쪽-오른쪽 편향의 경우
왼쪽-왼쪽 편향의 경우
오른쪽-왼쪽 편향의 경우
왼쪽-오른쪽 편향의 경우
*N = 트리의 노드 수
순서: best / avg / worst
순서: best / avg / worst
장점:
AVL 트리는 균형을 엄격하게 맞추기 때문에, 최악의 경우의 시간 복잡도가 개선되었다단점:
(삽입/삭제)를 할 때마다 트리 균형을 확인하고, 만약 균형이 깨졌을 경우,
트리 구조를 재조정하기에 이때 시간이 꽤 소요된다
AVL 트리의 단점을 해결