자료구조(파이썬) - AVL 트리, 레드블랙 트리, B 트리

LSH·2023년 8월 21일
0

교육 정보

  • 교육 명: 경기미래기술학교 AI 교육
  • 교육 기간: 2023.05.08 ~ 2023.10.31
  • 오늘의 커리큘럼:
    파이썬 자료구조
    (7/17 ~ 7/28)
  • 강사: 이현주, 이애리 강사님
  • 강의 계획:
    1. 자료구조

AVL 트리

  • 스스로 균형(height)을 잡는 이진 탐색 트리
  • 균형을 잡아서 편향도를 낮춰 height를 낮게 유지
  • 속성:
    • 이진 탐색 트리 속성 만족
    • 좌 우 서브트리 height 차이가 최대 1 (높이 차이가 1보다 커지면 rotation을 통해 균형을 맞춤)
      → 트리 내의 모든 노드가 이 성질을 만족해야 함
  • 높이 logN으로 유지, 삽입, 검색, 삭제의 시간 복잡도는 O(logN)
    AVL 트리 시뮬레이터

AVL 트리의 수선(균형을 맞추는 방법)

  • LL 타입: 루트의 왼쪽의 왼쪽이 가장 깊은 경우 → right rotation (1회전)
  • RR 타입: 루트의 오른쪽의 오른쪽이 가장 깊은 경우 → left rotation (1회전)
  • LR 타입: 루트의 왼쪽의 오른쪽이 가장 깊은 경우 → left rotation → right rotation (2회전)
  • RL 타입: 루트의 오른쪽의 왼쪽이 가장 깊은 경우 → right rotation → left rotation (2회전)
    링크의 Rebalancing 항목 참고

레드 블랙 트리

  • 자가 균형 이진 탐색 트리
  • 속성:
    • 모든 노드는 레드 or 블랙
    • 루트 노드와 모든 리프노드는 항상 블랙 (구현을 위해 가장 말단에 NIL이라는 가상의 블랙 노드를 가진다고 가정)
    • 레드노드의 자식은 항상 블랙 (레드 연속 불가)
    • 모든 리프노드에서 루트노드로 가는 경로에서 만나는 블랙 노드의 갯수는 동일
    • 새로 추가되는 노드는 항상 레드
      레드 블랙 트리 시뮬레이터

B 트리

→ Restructuring과 Recoloring을 통해 균형을 맞춤

알고리즘 항목 참고

profile
:D

0개의 댓글