나무가 뿌리를 내리고 있는 모습을 떠올리면, 한 뿌리에서 나아가 가지가 생기고, 잎이 무성해지는 장면이 떠오른다. 트리구조는 이를 거꾸로 놓은 모습을 가지고 있으며, 그래프의 여러 구조 중 일방향 그래프의 한 구조이다.
트리구조를 공부하면서 굉장히 많이 쓰일 것 같다는 생각을 했는데, 어떤 데이터 안에 또 데이터가 목록을 이루고, 또 하위항목을 갖고, 갖고, 갖고... Desktop/download/file_1/file_1_1/file1_1_1
과 같은 형태로 컴퓨터에서 디렉토리 구조를 생각할 수 있을 것이다.
자식 노드가 최대 2개인 노드들로 구성된 트리구조를 이진트리(Binary Tree) 라고 한다. (왼쪽 자식 & 오른쪽 자식)
단순 탐색 : 최대 n번의 탐색
이진 탐색 : 최대 log n번의 탐색
모든 왼쪽 자식들은 루트와 부모보다 작은 값이고, 모든 오른쪽 자식들은 루트와 부모보다 큰 값을 가지고 있는 형태를 이진 탐색트리 (Binary Search Tree) 라고 한다.
Tree traversal img : wiki