전위순회(preorder)
루트노드 - 왼쪽 서브트리 - 오른쪽 서브트리 순으로 순회하는 방식입니다.
'깊이 우선 순회'라고도 합니다.
중위순회(inorder)
루트노드에서 시작해서 왼쪽 서브트리 - 노드 - 오른쪽 서브트리 순으로 순회하는 방식입니다.
'대칭 순회' 라고도 합니다.
후위 순회(postorder)
루트노드에서 시작해서 왼쪽 서브트리 - 오른쪽 서브트리 - 노드 순으로 순회하는 방식입니다.
이진 트리는 최대 차수가 2인 트리를 말합니다.
이는 하나의 노드에 LEFT or RIGHT만 존재한다고 표현합니다.
이진 트리에는 여러 유형이 존재합니다.
1. 편향 이진 트리(skewed binary tree)
편향이진 트리는 하나의 차수로만 이뤄져 있는 경우를 말합니다. 이런 구조는 배열과 같은 선형 구조이기
때문에 Leaf Node (가장 끝 노드)탐색시 결국 모두 읽어 들여야 한다는 단점이 있어서 효율이 떨어진다고 말합니다. 이같은 점을 보완하기 위해 '높이 균형 트리'라는 것이 있습니다.
포화이진 트리는 Leaf Node를 제외한 모든 노드의 차수가 두개로 이뤄진 경우를 말합니다. 이 경우에는 해당 차수에 몇개의 노드가 존재하는지 바로 알수 있어 개수 파악이 용이하다는 장점이 있습니다.
이진 탐색 트리(Binary Search Tree)?
이진 탐색 트리에서는 항상 부모 노드가 왼쪽 자식보다는 크고, 오른쪽 자식보다는 작습니다.
이러한 특성 덕분에 이진탐색트리에서는 한번 확인할때 마다 보아야 하는 원소의 개수가 절발씩 줄어든다는 점에서 '완전 이진 트리'인 경우 탐색시간에 O(logN)의 시간복잡도를 가집니다.
이진 탐색 트리에서 탐색(traverse)을 할 때는 찾고자 하는 값이 부모 노드보다 작을 경우 왼쪽 자식으로, 찾고자 하는 값이 부모 노드보다 클 경우 오른쪽 자식으로 이어 나가면서 방문 합니다.
이진 탐색트리는 이진 탐색이 항상 동작하도록 구현하여 탐색속도를 극대화 시킨 자료구조를 이진 탐색 트리라고 합니다.