자료구조: ch11) 균형 이진탐색트리- Red-Black 트리

Ji·2021년 3월 6일
0

본 글은 신찬수 교수님의 자료구조 강의를 듣고 참조하여 작성하였다.

레드블랙트리

  • v의 서브트리의 내부 노드 개수 >= 2^bh(v)-1
    ( bh(v): v부터 리프 노드까지 v 제외 한 블랙노드의 개수)
  • black 노드 수 >=h/2
  • h=O(lgn)

레드블랙트리의 특성

  • 노드는 블랙 또는 레드색이다.
  • 루트 노드는 블랙이다.
  • 모든 리프(NIL) 노드는 블랙이다.
  • 노드가 레드이면 그 노드의 자식은 반드시 블랙이다. (No Double Red)
  • 루트 노드에서 임의의 리프 노드에 이르는 경로에서 만나는 블랙 노드의 수는 모두 같다.

레드블랙트리의 삽입(insert)

  • 기본적으로 신규 생성 노드의 색은 레드
  • 신규노드가 삽입되고 나서 parent가 black인 경우는 상관 X
  • but double red일 때는 문제 발생. 해결방안은 2가지이다.
  1. 부모 노드가 레드, uncle이 블랙 -> Restructring
    (1) 3 12 5 노드들 오름차순 정렬
    (2) 가운데 있는 값은 부모, 나머지는 자식노드
    (3) 부모 값을 black, 두 자식을 red로 만든다.

  2. 부모 노드 레드, uncle이 red-> Recoloring (부모노드의 컬러를 블랙, 조부모의 칼라를 레드로. but 조부모가 루트노드면 다시 블랙으로 칠해줘야 함.)


    (출처: https://m.blog.naver.com/min-program/221231697752)
profile
공부방

0개의 댓글