트리(Tree)는 계층적인 구조를 표현하는 자료구조로, 노드(node)들이 간선(edge)으로 연결된 형태를 가지며 하나의 루트(root) 노드를 가진다. 트리는 컴퓨터 과학에서 매우 중요한 자료구조로 다양한 응용 분야에서 활용된다.

계층 구조 : 트리는 부모-자식 관계를 가진 노드들로 이루어진 계층적인 구조로, 각 노드는 자신의 부모와 자식 노드를 가지고 이러한 구조는 데이터의 계층화를 효과적으로 표현할 수 있다.
단일 경로 : 트리에서 두 노드를 연결하는 경로는 유일하다. 부모 노드에서 자식 노드로든 가는 경로는 오직 한 가지로, 그 연결선이 edge가 된다.
비순환적 구조 : 트리의 어떤 경로를 따라가도 동일한 노드를 두 번 이상 방문하지 않는다.
유일한 루트 노드 : 모든 트리는 단 하나의 루트 노드를 가진다. 루트 노드는 트리의 시작점이며, 모든 다른 노드는 루트 노드로부터의 어떠한 경로를 통해 접근 가능하다.
서브 트리(Subtree) : 트리 내의 어떤 노드와 그 자손들로 이루어진 부분 트리로, 어떤 노드를 루트로 하는 서브 트리는 그 노드의 자식들과 그 자식들의 자손들로 이루어진다.
이진 트리는 노드들이 최대 두 개의 자식을 가지며, 루트 노드를 시작으로 각 노드들이 서로 연결된 구조의 트리를 말한다. 최대 두 개의 자식을 가지므로 자식이 없을 수도, 1개만 가질 수도 있다. 이진 트리 중 구조와 특징에 따라 완전 이진트리, 편향 이진트리, 포화 이진트리 등으로 분류될 수 있다. 다음은 흔히 사용되는 이진 트리의 일종이다.
이진 탐색 트리(Binary Search Tree)는 이진 트리의 일종으로, 다음 조건을 만족하는 트리이다.

- 왼쪽 서브트리의 모든 노드들의 값은 해당 노드의 값보다 작다.
- 오른쪽 서브트리의 모든 노드들의 값은 해당 노드의 값보다 크다.
- 모든 노드의 왼쪽, 오른쪽 서브트리 모두 이진 탐색 트리를 만족한다.
이런 특성을 활용해 재귀적으로 트리를 순회하여 탐색, 삽입, 삭제 등의 연산을 효율적으로 수행할 수 있고 데이터를 정렬된 상태로 유지할 수 있다. BST의 탐색 연산은 평균적으로 O(log n)의 시간복잡도를 가지므로 효율적으로 수행된다고 볼 수 있다. 최악의 경우(편향된 트리일 경우) O(n)의 시간복잡도를 가질 수 있다.
힙(Heap)은 완전 이진트리(마지막 레벨을 제외한 모든 레벨이 가득 채워져 있으며 마지막 레벨 노드들이 왼쪽부터 순차적으로 채워진 트리)를 만족하며, 왼쪽 자식은 해당 노드보다 작은 값을, 오른쪽 자식은 해당 노드보다 큰 값을 가지는 조건을 만족한다. 최대 힙(MaxHeap) 은 부모 노드의 값이 자식 노드의 값보다 크거나 같으며, 최소 힙(MinHeap) 은 부모 노드의 값이 자식 노드의 값보다 작거나 같다.

기존 배열에서 최대/최소값을 찾기 위해서는 O(n)이 소요되지만 힙에서는 O(logn)만큼 소요되는, 주어진 데이터에서 최대/최소값을 빠르게 찾기 위해 고안된 이진 트리이다.
힙과 BST 모두 이진 트리의 일종이기 때문에 헷갈릴 수 있지만 목적과 동작 방식에 있어 차이를 가진다.
AVL 트리는 자가 균형 이진 탐색 트리로, 스스로 균형을 유지하는 트리 구조이다. 위의 BST 자료처럼 이진 탐색 트리에서 데이터가 편향된 경우, 즉 한 쪽으로 치우쳐진 경우 탐색에 O(n)의 시간이 소요될 수 있다. 이렇게 편향된 이진 트리는 트리의 높이가 높아져 탐색에 오랜 시간이 소요되는데, AVL 트리에서는 이를 방지하기 위해 균형을 유지하고자 한다.

AVL 트리는 각 노드의 왼쪽 서브트리와 오른쪽 서브트리의 높이 차이를 최대한 작게 유지하여 균형을 유지한다. 이를 통해 탐색, 삽입, 삭제 연산에 대해 항상 O(log n)의 시간 복잡도를 유지할 수 있다. AVL 트리는 다음 요소들을 통해 균형을 유지한다.

레드-블랙 트리도 자가 균형 이진 탐색 트리로, 모든 노드는 'Red' or 'Black' 색상을 가지며 루트 노드는 Black이고 빨간색 노드는 연속으로 올 수 없다는 규칙을 만족한다.
레드-블랙트리는 편향된 이진 탐색트리를 개선한 구조로 rotation과 re-coloring을 통해 균형을 유지하며 최악의 경우에도 O(logn)의 시간복잡도를 가진다. 따라서 실시간 처리처럼 실행시간이 중요한 경우 주로 사용된다.
둘 다 자가 균형 이진 탐색 트리이지만, 균형을 잡는 과정에서 레드-블랙 트리에 비해 AVL 트리에서 회전 연산이 더 많이 발생할 수 있다. 레드-블랙 트리는 노드의 색상을 조정하며 균형을 유지하므로 회전이 발생하지 않을 수도 있어 AVL 트리의 균형 조건이 더 엄격한 편이다.
더욱 엄격한 균형 조건의 AVL 트리는 검색 성능이 더 우수할 수 있고 레드-블랙 트리는 삽입/삭제 연산에 더 효율적인 특징을 갖는다.