Computer Science/Data Structures
[자료구조] Tree & Binary Search Tree
지윤이글스
2023. 1. 14. 01:02
1. 트리(Tree)
: 트리(Tree)는 계층적인 자료를 표현하는데 이용되는 자료구조이며,컴퓨터의 directory 를 예시로 들 수 있다.
실제 나무를 거꾸로 한 것과 같은 모양을 하고 있어 "Tree" 라고 부른다.
아래사진은 내방식으로 정리한 그림이다.
루트노드 (root node) : 부모가 없는 최상위 노드
단말노드 (leaf node) :자식이 없는 노드
크기 (size) : 트리에 포함된 모든 노드의 개수
깊이 (depth) : 루트 노드로부터의 거리
높이 (height) : 깊이(depth) 중 최댓값, 즉 루트 노드로부터 가장 멀리있는 노드.
차수 (degree) : 각 노드의 간선 개수
2. 이진트리(Binary Tree)
트리를 구성하는 노드의 branch는 0개, 1개, 2개, 3개 등 여러개가 될 수 있지만, 이진트리는 모든 노드가 최대 2개의 서브트리를 가지고있는 트리다. 서브트리 또한 모두 이진트리이다. 즉 branch가 최대 2개인 노드로만 구성되는 트리라는 뜻이다.
3. 이진탐색트리 (Binary Search Tree, BST)
이진 탐색 트리는 위의 이진트리에 조건이 더해진 것이다.
이진탐색트리는 모든 노드가 왼쪽 자식 노드 < 부모노드 < 오른쪽 자식 노드의 순서대로 값이 크다.
또한, 부모노드를 중심으로 작은 값은 왼쪽 자식 노드에 큰 값은 오른쪽 자식 노드에 존재해야 하므로, 이진 탐색 트리의 모든 노드이 데이터 값은 중복되는 값이 존재하면 안되낟. 즉, 데이터 값은 유일해야한다.