RBTREE란?

img.png

RBTREE의 5가지 속성

  1. 모든 노드는 Red 아니면 Black이다.
  2. 루트 노드는 Black이다.
  3. 모든 Nil노드는 Black이다.
    1. Nil노드는 존재하지 않음을 의미한다.
    2. 자녀가 없을 경우, 자녀를 Nil노드로 표기한다.
    3. 값이 있는 노드와 동등하게 취급한다.
    4. 사실상, RB Tree의 leaf 노드이다.
  4. Red의 자녀들은 Black이다.
    1. Red가 연속적으로 존재할 경우 규칙이 깨진다.
    2. 삽입 시, Red 노드를 삽입하므로 해당 규칙이 깨질 가능성이 높다.
  5. 임의의 노드에서 자손 Nil노드까지 가는 경로들의 Black의 수는 같다.
    1. 삭제 시, Black을 삭제할 경우 해당 규칙이 깨질 가능성이 높다.

회전

image.png

왼쪽 회전

오른쪽 회전