Search Trees

dev_butler·2023년 11월 27일

Binary Search Trees

  • Binary Tree
    : Map 항목을 저장할 수 있는 우수한 데이터 구조 -> key에 정의된 order relation
  • Binary Search Tree
    : 각 위치 p가 key-value 쌍 (k, v)을 저장하는 이진 트리 T (p의 왼쪽은 k보다 작고, 오른쪽은 k보다 크다)
  • Sorted Map
    • 항목은 key에 따라 순서대로 저장됨 -> 가장 가까운 이웃 query 지원 가능
  • Recall
    : 이진 검색 트리 순서대로 이동 (왼쪽 서브트리 먼저 방문, 그 후 루트 방문, 그 후에 오른쪽 서브트리 방문)

  • 이진 검색 트리 순서대로 순회하면 키 순서가 증가하는 위치 방문

  • tree에 저장된 키 특성에 기초한 이진 검색 트리에 대한 추가 네비게이션 방법

Searches

  • 이진 검색 트리에서 키 'k'를 찾기 위해 각 위치 p에서 질문함
    • 'k'는 top.key((p에 저장된 키)와 같음. 검색이 성공적으로 종료
  • 최악의 running time은 O(h), T경로의 위치에서 T(T, p, k)가 루트에서 시작하여 한 단계씩 내려가는 위치에서 트리 검색 (T, p, k)호출

Insertion. M[k]=v

Deletion

: 삭제할 키 'k'로 항목을 저장하는 위치 p를 찾음, 검색 성공 시 노드 삭제

  • Leaf Node

  • one child node

  • two children node

0개의 댓글