계층적 구조를 나타내는 자료구조로, 루트(Root) 노드에서 시작하여 자식(Children) 노드로 확장되는 방식으로 구성.
트리는 다양한 컴퓨터 과학 및 알고리즘 문제에서 중요한 역할을 함.
이진 트리(Binary Tree) : 각 노드가 최대 두개의 자식 노드를 갖는 트리
-완전 이진 트리 (Complete Binary Tree) : 마지막 레벨을 제외하고 모든 레벨이 완전히 채워진 트리
-포화 이진 트리 (Full Binary Tree) : 모든 노드가 두 개의 자식 노드를 가지거나 리프 노드인 트리
-균형 이진 트리 (Balanced Binary Tree) : 모든 리프 노드가 같은 높이에 있는 트리
-이진 탐색 트리 (Binary Search Tree, BST) : 왼쪽 자식 노드는 부모 노드보다 작고, 오른쪽 자식 노드는 부모 노드보다 큰 이진 트리
AVL 트리(AVL Tree) : 모든 노드의 왼쪽과 오른쪽 서브트리 높이 차이가 1 이하인 자가 균형 이진 탐색 트리
레드-블랙 트리(Red-Black Tree) : 각 노드가 레드 또는 블랙으로 색칠된 이진 탐색 트리로, 트리의 균형을 유지하기 위해 특정 규칙을 따름
N-진 트리(N-ary Tree) : 각 노드가 최대 N개의 자식을 갖는 트리
트리 순회(Tree Traversal) : 트리의 노드를 방문하는 방법
-전위 순회(Preorder Traversal) : 루트 -> 왼쪽 -> 오른쪽 순서대로 방문
-중위 순회(Inorder Traversal) : 왼쪽 -> 루트 -> 오른쪽 순서대로 방문. 이진 탐색 트리에서는 중위 순회 결과가 정렬된 순서가 됨
-후위 순회(Postorder Traversal) : 왼쪽 -> 오른쪽 -> 루트 순으로 방문
-레벨 순회(Lever Order Traversal) : 루트에서 시작하여 레벨별로 방문
삽입(Insertion) : 트리에서 새로운 노드를 추가하는 알고리즘. 예를들어, 이진 탐색 트리에서는 규칙에 따라 적절한 위치에 삽입
삭제(Deletion) : 트리에서 노드를 제거하는 알고리즘. 이진 탐색 트리에서 노드를 삭제할 때는 자식 노드가 없는경우, 자식 노드가 하나인 경우, 자식 노드가 둘인 경우에 따라 다르게 처리
검색(Search) : 특정 값을 가진 노드를 찾는 알고리즘. 이진 탐색 트리에서는 루트부터 시작하여 값을 비교하면서 탐색