티스토리 뷰

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

BST(Binary Search Tree, 이진 탐색 트리)는 이진 탐색 알고리즘을 트리에 적용한 자료구조입니다.

 

이진 탐색 트리의 정의는 다음과 같습니다.

- 노드에 저장된 Key(키)는 유일하다.

- 루트 노드의 키가 왼쪽 서브 트리를 구성하는 어떠한 노드의 키보다 크다.

- 루트 노드의 키가 오른쪽 서브 트리를 구성하는 어떠한 노드의 키보다 크다.

- 왼쪽과 오른쪽 서브 트리도 이진 탐색 트리이다.

 

이진 탐색 트리의 탐색 연산은 O(log n)의 time complexity를 갖습니다.

이진 탐색 트리의 높이는 log (n + 1)이기 때문입니다.

 

하지만 이진 탐색 트리가 한 쪽으로 편향되어 있다면(Skewed Tree, 편향 트리) time complexity의 worst case가 O(n)이 됩니다.

이를 해결하기 위해 Rebalancing 기법이 등장했습니다.

Rebalancing은 트리 구조를 균형있게 재조정하는 기법입니다.

Red-Black Tree는 이 기법을 구현한 트리입니다.

추후에 살펴보도록 하겠습니다.

'Dev.Basic > 자료구조' 카테고리의 다른 글

Binary Heap(이진 힙)  (3) 2019.10.14
Tree(트리)  (0) 2019.10.12
Stack(스택) & Queue(큐)  (14) 2019.10.10
Array(배열) VS LinkedList(연결 리스트)  (0) 2019.10.10
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함