Algorithm/자료구조

이진 탐색 트리 (Binary Search Tree)

olli2 2021. 11. 26. 00:00

이진탐색이 동작할 수 있도록 고안된 효율적인 탐색이 가능한 자료구조의 일종

전체 노드에 대하여 왼쪽 자식 노드는 부모노드보다 값이 작고, 오른쪽 자식 노드는 부모노드보다 값이 큰 값을 가지도록 이진트리 구성 (왼쪽 자식 노드 < 부모 노드 < 오른쪽 자식 노드)

 

= 부모 노드는 모든 왼쪽 자식노드와 비교하였을 때 값이 크고, 모든 오른쪽 자식노드와 비교하였을 때 값이 작다.

 

이진탐색트리에서의 데이터 조회 과정

1. 루트 노드부터 방문하여 탐색 진행 (현재 노드와 찾는 원소를 비교. 찾는 원소가 더 작다면 왼쪽/크다면 오른쪽 방문)

2. 현재 노드와 찾는 원소를 비교 -> 찾는 원소가 더 작다면 왼쪽/크다면 오른쪽 방문

2번 과정 반복하다가 원소를 찾으면 탐색 종료

(이상적인 경우 탐색 범위가 절반 가까이 줄어들기도 함)