본문 바로가기

Algorithm/자료구조

Tree

Tree (트리)

  • 자료의 항목(node)들이 가지(dege)로 연결되어 구성된 구조
  • 계층적인 구조 표현 시 사용
  • 부모-자식 관계의 노드들로 구성

트리 관련 용어

  • 노드 (node) : 트리를 구성하는 각 자료 항목
  • 근 노드 (root node) 
    • 부모가 없는 최상위 노드
    • 트리 구조를 시작하는 노드
    • 제일 상위 계층에 존재하는 하나의 노드
  • 자식 노드 : 임의의 노드에 연결된 다음 레벨의 노드들의 집합
  • 부모 노드 : 임의의 노드에 연결된 상위 계층의 노드
  • 단말 노드 : 자식 노드가 없는 노드
  • 차수 (degree)
    • 각 노드의 자식 방향으로의 간선 개수
    • 한 노드에 연결된 가지의 수
    • 노드가 갖고 있는 자식 노드의 개수
  • 레벨 : root node 레벨을 0으로 하고, 그 아래 가지로 연결된 노드들의 레벨 1씩 증가
  • 트리의 깊이 (depth) : 어떤 특정 노드에서 root 노드에 이르는 경로의 길이
  • 트리의 높이 (height) : 트리의 최대 레벨 + 1
  • 트리의 크기가 N일때 전체 간선의 개수 = N-1

트리 구조의 저장

  • 배열을 이용한 방법
  • 연결 리스트를 이용한 방법

배열을 이용한 방법

  • 연속적인 기억 공간을 그대로 이용하는 배열의 구조에 트리를 저장
  • 각 노드 당 최대 차수 3만큼 기억 장소 확보
  • 최대 기억 장소 : 총 노드의 개수  x 트리의 차수 + 1 = 28

 

'Algorithm > 자료구조' 카테고리의 다른 글

리스트 (선형 리스트 / 단일 연결 리스트)  (0) 2021.11.29
이진 탐색 트리 (Binary Search Tree)  (0) 2021.11.26
Heap  (0) 2021.11.25
완전 이진 트리  (0) 2021.11.25
우선순위 Queue  (0) 2021.11.25