[자료구조] 트리란?

유진·2023년 8월 23일

알고리즘-자료구조

목록 보기
6/15

📝 트리의 정의

그래프의 일종으로 정점과 간선을 이용하여 데이터의 배치 형태를 추상화한 자료구조로 서로 다른 두 노드간의 연결이 하나뿐인 그래프이다.



🎯 트리의 특징

  • DAG(Directed Acyclic Graph), 방향성이 있는 비순환 그래프의 한 종류이다.
  • 일반적으로 대상 정보의 각 항목들을 계층적으로 구조화할 때 사용하는 비선형 자료구조이다. ex) OS-FileSystem의 디렉터리 구조, 조직도
  • 트리의 구조는 데이터를 저장 하는 것 보다 효과적으로 데이터 탐색을 하기 위해 사용된다.
  • 트리는 부모(parent)와 자식(child)의 계층적인 관계로 표현된다.
  • 트리는 사이클이 불가능하고 자체 간선도 불가능하다.
  • 트리에서 루트노드를 제외한 모든 노드는 단 하나의 부모노드를 가진다.
  • 트리내에 또 다른 트리가 있는 재귀적 자료구조이다.



트리 순회

트리의 각 노드를 체계적인 방법으로 탐색하는 과정을 의미한다.
노드를 탐색하는 순서에 따라 전위 순회, 중위 순회, 후위 순회로 나뉜다.

1) 전위 순회 (Preorder)

  • 루트노드 -> 왼쪽 서브트리 -> 오른쪽 서브트리 순서로 순회
  • 깊이 우선 순회라고도 한다.

2) 중위 순회 (Inorder)

  • 왼쪽 서브트리 -> 노드 -> 오른쪽 서브트리 의 순서로 순회
  • 대칭 순회라고도 한다.

3) 후위 순회 (Postorder)

  • 왼쪽 서브트리 -> 오른쪽 서브트리 -> 노드 의 순서로 순회



이진 트리 (Binary Tree)

  • 트리 자료구조의 여러 가지 유형 중 가장 기본이 되는 트리는 이진 트리(Binary Tree) 구조이다.
  • 이진 트리는 2개 이하의 자식노드를 가진다. 자식노드가 없거나 1개의 자식노드만 가질 수도 있다.
  • 2개의 자식노드 중에서 왼쪽의 노드를 Left Node라고 하고, 오른쪽의 노드를 Right Node라고 한다.

이진 트리 종류

<출처> programiz

1) 편향 이진 트리 (Skewed Binary Tree)

  • 편향 이진 트리는 하나의 차수로만 이루어져 있는 경우를 의미한다.
  • 배열(리스트)와 같은 선형 구조로 'Leaf Node'(가장 하위 노드) 탐색 시 데이터를 전부 탐색해야 한다는 단점이 있어 효율적이지 못하다.
    ✔ 이를 보완하기 위해 높이 균형 트리라는 것이 있다.

2) 포화 이진 트리 (Full Binary Tree)

  • 포화 이진 트리는 'Leaf Node'를 제외한 모든 노드의 차수가 2개로 이루어져 있는 경우를 의미한다.
  • 포화 이진 트리는 해당 차수에 몇 개의 노드가 존재하는지 바로 알 수 있어 노드의 개수를 파악할 때 용이한 장점이 있다.

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

  • 포화 이진 트리와 같은 개념으로 트리를 생성하지만, 모든 노드가 왼쪽부터 차근차근 생성되는 이진 트리를 의미한다.
    힙(Heap)은 완전 이진 트리의 일종이다




참고자료

profile
도라에몽 암기빵

0개의 댓글