CS (Computer Science)

[CS] 자료구조 - 트리

송기동 2024. 10. 1. 17:29
728x90

트리(Tree)

- 데이터 간의 관계를 나타내는 비선형 자료구조

- 노드(node) 라고 불리는 부분과 노드를 연결하는 가지(branch, edge)로 구분됨

- 노드 사이에는 계층적인 관계성을 갖음

 

 

# 트리 용어 정의

  • 노드(node) : 정보 항목을 의미
  • 루트(root) : 빈 트리가 아닌 경우에 맨 꼭대기에 있는 하나의 노드
  • 차수(degree) : 각 노드에 있는 가지의 수
  • 잎 노드(leaf node) = 단말 노드(terminal node) : 노드의 차수가 0인 노드
  • 내부 노드 = 비단말 노드(non-terminal node) : 루트 노드와 단말 노드를 제외한 나머지 노드
  • 부모(조상) 노드 : 루트 노드로부터 어떤 노드 x까지의 경로(가지들의 모음) 상에 존재하는 모든 노드를 x의 부모 노드라고 함
  • 자식(자손) 노드 : 어떤 노드 X에서 단말 노드까지의 경로 상에 존재하는 모든 노드를 자식 노드라고 함
  • 레벨(level) : 루트 노드로부터 거리(가지의 수)를 의미
  • 트리의 깊이(depth)/높이(height) : 루트 노드로부터 가장 긴 경로에 있는 단말 노드의 레벨이 1의 값을 더한 것
  • 서브 트리(subtree) : 특정 노드를 루트 노드로 하고, 그 아래에 있는 연결된 구조의 트리
  • 숲(forest) : n개의 서브 트리를 가진 트리에서 루트 노드를 제거해서 얻을 수 있는 분리된 서브 트리의 집합

 

 

 

728x90