Tree

Taeyoung You·2024년 11월 14일

Data Structure

목록 보기
7/14
post-thumbnail

Tree

계층적 구조를 가지는 자료구조, 부모-자식 관계로 노드가 연결됨

Tree terminology

  • Root: 트리의 최상위 노드, 트리의 시작점
  • Leaf: 자식 노드가 없는 노드
  • Parent: 특정 노드를 포함하는 상위 노드
  • Children: 특정 노드가 포함하고 있는 하위 노드들
  • Subtree: 트리의 부분 구조로, 특정 노드를 루트로 하는 트리
  • Level: 루트에서 떨어진 거리(깊이), 간선으로 깊이를 셈
  • Height: 트리의 최하위 레벨

Type of tree

  • General Tree
    모든 노드가 자식 노드를 임의 개수만큼 가지는 기본적인 트리
  • Binary Tree
    각 노드가 최대 두 개의 자식을 가질 수 있는 트리
  • Complete Binary Tree
    마지막 레벨의 위 레벨은 완전히 채워지고, 마지막 레벨은 왼쪽부터 채워진 트리
  • Full Binary Tree
    모든 노드가 0개 또느 2개의 자식을 가지는 이진 트리, 이상적인 트리
  • Binary Search Tree, BST
    이진 트리의 일종, 왼쪽 자식은 부모보다 작고, 오른쪽 자식은 부모보다 큰 이진 트리
  • Balanced Binary Tree
    모든 서브트리의 높이 차이가 일정 범위 내로 제한된 트리, 삽입과 삭제 후에도 균형을 유지되도록 설계된 트리
  • AVL Tree
    이진 탐색 트리의 일종, 모든 노드의 두 서브트리의 높이 차이가 1을 넘지 않도록 유지하는 균형 트리
  • Red-Black Tree
    이진 탐색 트리의 변형, 노드를 빨간색과 검은 색으로 색칠하여 트리의 균형을 유지
  • N-ary Tree
    각 노드가 최대 N개의 자식을 가질 수 있는 트리
  • B- Tree
    균형을 유지하는 다진 트리
  • B+ Tree
    B- Tree의 변형으로 모든 리프 노트에 데이터를 저장하며, 리프 노드가 서로 연결되어 있어 range query가 효율적
  • Trie, Prefix Tree
    문자열을 효율적으로 저장하고 탐색할 수 있는 트리 구조, 문자열의 접두사를 공유하는 형태로 구성됨
  • Heap
    완전 이진 트리 기반의 트리, 최댓값이나 최솟값을 빠르게 찾기 위해 설계된 트리

Types of trees to study

profile
Festina Lente, Slow and steady wins the game

0개의 댓글