본문 바로가기

Programming/알고리즘

[자료구조] 트리 - 이진 트리 유형

트리와 그래프에 대해 작성하던 중 트리의 종류(이진 트리, 이진 탐색 트리)에 대한 하위 카테고리가 다양한 것을 확인해 각 종류에 대한 글을 따로 작성하기로 했다.

 

 

 

 

이진 트리 (Binary Tree, B-Tree)

: 자식 노드를 최대 2개 가질 수 있는 트리

 

 

 

  • 종류

전 이진 트리, 완전 이진 트리, 포화 이진 트리, 균형 이진 트리, 편향 이진 트리

 

※ 하나의 이진 트리는 위 카테고리 여러 개에 동시에 해당할 수도 있음

 

 

 

  • 전(or 정) 이진 트리 (Full/Strict Binary Tree) 

모든 노드가 0개 또는 2개의 자식 노드를 가짐

 

 

 

  • 완전 이진 트리 (Complete Binary Tree)

마지막 레벨 외 노드들은 모두 채워져 있어야 함 (2개의 자식 노드)

말단 노드들은 왼쪽에서부터 차례대로 채워짐

 

배열로 구현하는 것이 편리함

 

ex) 힙(Heap)

 

 

 

  • 포화 이진 트리 (Perfect Binary Tree)

모든 레벨의 노드가 2개의 자식 노드 가짐 (전 이진 트리 조건 만족)

모든 말단 노드들은 동일한 레벨에 속함

 

 

 

  • 균형 이진 트리 (Balanced Binary Tree)

왼쪽, 오른쪽 서브 트리 레벨이 1 이상 차이 나지 않음

 

ex) AVL 트리, Red-black 트리

 

 

 

  • 변질 이진 트리 (Degenerate Binary Tree)

각 노드들은 하나의 자식 노드만 가짐

 

(⊃ 편향 이진 트리(Skewed Binary Tree ) : 왼쪽 또는 오른쪽 한 방향으로만 자식을 가짐)

 

LinkedList와 유사한 구조

 

 

 

 

 

 

 

참고

 

 

 

 

 

 

 

 

'Programming > 알고리즘' 카테고리의 다른 글

[백준/자바] 트리 1967번 - 트리의 지름  (0) 2023.06.03
[자료구조] 이진 탐색 트리  (0) 2023.06.02
[자료구조] 트리, 그래프  (0) 2023.05.11
DFS, BFS  (0) 2023.05.04
DP(Dynamic Programming, 동적 계획법)  (0) 2023.04.07