이진 트리(Binary Tree)

왱구·2024년 7월 17일

스터디

목록 보기
4/21

참고자료

1. 이진 트리란?

이진 트리는 각각의 노드가 최대 두 개의 자식 노드를 가지는 트리 자료 구조로, 자식 노드를 각각 왼쪽 자식 노드와 오른쪽 노드 자식 노드라고 한다.

그림에서 보는 이진 트리는 다음과 같은 규칙을 가지고 있다.

  • 이진트리는 항상 두개의 자식 노드를 가지고 있다.
  • 모든 원소는 중복된 값을 가져서는 안된다.
  • 왼쪽 서브트리에 존재하는 노드들의 값은 그 트리의 루트 값보다 반드시 작다.
  • 오른쪽 서브트리에 존재하는 노드들의 값은 그 트리의 루트 값보다 반드시 크다.

이진트리는 주로 검색 알고리즘, 정렬 알고리즘 등에 사용되는데 자료의 삽입, 삭제, 검색 등의 작업이 빠르게 수행될 수 있으며, 일반적으로 O(log n) 시간 복잡도를 가지는 알고리즘을 사용하여 이러한 작업이 수행된다.

2. 이진 트리의 종류

1) 정 이진 트리(Full binary tree)

  • 모든 노드가 2개의 자식을 가지거나 자식이 없는 경우에는 정 이진 트리(Full Binary Tree)라고 한다.
    자식이 한 개인 경우가 없어야 정 이진 트리이다.

    (1) 정 이진 트리의 유효 및 무효 구조

2) 완전 이진 트리(Complete binary tree)

  • 완전 이진 트리는 두가지 조건을 충족해야 한다.
    • 마지막 레벨(level)을 제외하고 모든 노드가 채워져 있어야 한다.
    • 노드는 왼쪽에서 오른쪽 방향으로 채워져야 한다.

      (1) 완전 이진 트리의 유효 및 무효 구조

3) 포화 이진 트리(Perfect binary tree)

  • 모든 노드가 2개의 자식을 가지고 잎 노드가 모두 같은 레벨(level)일때는 포화 이진 트리(Perfect binary tree)라고 한다.
  • 모든 레벨(level)의 노드가 꽉 차있기 때문에 자식노드의 개수가 2의 제곱수만큼 증가하여 노드의 총 개수는 (2^(k+1))-1의 특징을 갖는다.
  • 높이가 h일 때 leaf노드의 개수는 2의 h제곱 개수가 된다.

    (1) 포화 이진 트리의 유효 및 무효 구조

4) 균형 이진 트리(Balanced binary tree)

  • 각 노드의 왼쪽과 오른쪽 서브 트리의 높이가 최대 1만큼 차이가 나는 이진 트리
  • AVL 트리와 레드-블랙 트리는 균형 이진 탐색 트리를 생성/유지하는 잘 알려진 데이터 구조

    (1) 균형 이진 트리의 유효 및 무효 구조

5) 변질 이진 트리(Degenerate binary tree)

  • 모든 부모 노드가 자식 노드를 하나만 가지는 이진 트리
  • 퇴화된 이진 트리의 높이는 해당 트리에 있는 노드의 총 개수와 같다.

    (1) 변질 이진 트리의 유효 및 무효 구조

6) 번외

노드 한개면 위의 모든 조건에 부합하게 되는데 이는 싱글노드트리라고 한다.

profile
늦깎이 애아빠 개발지망생

0개의 댓글