[Data Structure] AVL 트리
·
Programming/Algorithm & Data Structure
이진 트리의 문제점이진 트리의 경우 균형이 잡혀있다면 삽입, 삭제, 검색을 할 때 O(logn)의 시간 복잡도를 기대할 수 있지만, 한 쪽으로 편향되어 있다면 선형 자료구조처럼 작동해 O(n)의 시간 복잡도를 가지게 된다.그러므로 이진 트리의 균형을 맞추는 것은 중요하다. AVL 트리AVL 트리는 스스로 균형을 잡는 자가 균형 이진 탐색 트리이다.어떤 노드의 두 자식 서브트리의 높이의 차이가 최대 1만큼만 차이난다.어떤 시점에서 높이 차이가 1보다 커지면 균형이 무너졌다고 판단해 회전을 통해 스스로 균형을 잡는다.검색, 삽입, 삭제는 평균과 최악의 경우 모두 O(log n)의 시간 복잡도가 걸린다.Balance FactorAVL 트리에서 균형의 무너짐을 판단하는 기준이다.Balance Factor 계산..