Learning
토픽 17 / 66·트리 자료구조

이진 탐색 트리 (BST, Binary Search Tree)

이진 탐색 트리 (BST, Binary Search Tree)

모든 노드가 왼쪽 서브트리의 모든 값 < 노드 값 < 오른쪽 서브트리의 모든 값 속성을 만족하는 이진 트리로, 효율적인 검색·삽입·삭제를 지원

목적: 빠른 검색·삽입·삭제, 정렬된 순서 유지, 동적 집합 관리

특징: 정렬 속성, 중위 순회 = 정렬 순서, 재귀적 구조, 동적

속성: 왼쪽 서브트리 < 노드 < 오른쪽 서브트리 (모든 노드)

연산

  • 검색(Search): 재귀 또는 반복, O(h)
  • 삽입(Insert): 리프 위치 찾아 삽입, O(h)
  • 삭제(Delete): 3가지 케이스, O(h)
  • 최소/최대: 가장 왼쪽/오른쪽, O(h)
  • 중위 순회: 정렬 순서 출력, O(n)

시간 복잡도

  • 평균: O(log n) - 균형 트리
  • 최악: O(n) - 편향 트리(한쪽으로 치우침)

공간 복잡도: O(n)

장점: 빠른 검색·삽입·삭제(평균 O(log n)), 정렬 순서, 범위 쿼리, 동적

단점: 편향 시 O(n), 균형 유지 필요, 포인터 메모리

적용사례: 동적 집합, 우선순위 큐, 심볼 테이블, 데이터베이스 인덱스

비교: BST(정렬속성/평균 O(log n)) vs 해시(정렬없음/O(1)) vs AVL(균형보장/O(log n))

연관: 이진 트리, AVL 트리, Red-Black 트리, 균형 트리