Learning
토픽 13 / 66·트리 자료구조

트리 (Tree)

트리 (Tree)

노드들이 계층적으로 연결된 비선형 자료구조로, 하나의 루트 노드에서 시작하여 부모-자식 관계로 연결되며 사이클이 없는 연결 그래프

목적: 계층 구조 표현, 빠른 검색·삽입·삭제, 정렬된 데이터 유지

특징: 계층 구조, 사이클 없음, 루트, 부모-자식, 재귀적 구조

구성요소

  • 루트(Root): 최상위 노드
  • 노드(Node): 데이터+자식 포인터
  • 간선(Edge): 노드 간 연결
  • 리프(Leaf): 자식이 없는 노드
  • 서브트리(Subtree): 노드와 그 자손들

용어

  • 깊이(Depth): 루트부터 노드까지 간선 수
  • 높이(Height): 루트부터 리프까지 최대 간선 수
  • 레벨(Level): 같은 깊이의 노드들
  • 차수(Degree): 자식 노드 수

종류: 이진 트리, 이진 탐색 트리(BST), AVL 트리, Red-Black 트리, B-트리, 힙

순회(Traversal)

  • 전위(Preorder): Root → Left → Right
  • 중위(Inorder): Left → Root → Right (BST는 정렬 순서)
  • 후위(Postorder): Left → Right → Root
  • 레벨순서(Level-order): BFS, 큐 사용

장점: 계층 표현, 빠른 검색(O(log n)), 정렬 유지, 범위 쿼리

단점: 불균형 시 성능 저하, 포인터 메모리, 구현 복잡도

적용사례: 파일 시스템, DOM, 조직도, 데이터베이스 인덱스, 컴파일러 파싱

비교: 트리(계층/사이클없음) vs 그래프(일반/사이클가능)

연관: 이진 트리, BST, 그래프, 순회, 재귀