레드-블랙 트리(Red-Black Tree) ?

image.png

균형을 유지할 수 있는 이유 ?

레드-블랙 트리의 규칙

  1. 각 노드는 빨간색 또는 검은색이다.
  2. 루트 노드는 항상 검은색이다.
  3. 모든 리프 노드(NIL 노드, 즉 null)는 검은색이다. ( 일반적으로 트리 구현에서 리프 노드는 실제 데이터가 없는 null로 간주한다고 한다. )
  4. 빨간색 노드의 자식은 항상 검은색이어야 한다. → 즉, 빨간색 노드가 연속으로 나타날 수 없다. → 이 규칙을 레드-레드 규칙이라고 합니다.
  5. 어느 노드에서든 그 노드로부터 자손 리프 노드까지 가는 모든 경로에서 만나는 검은색 노드의 수는 같아야 한다. → 이 규칙이 트리의 균형을 유지하는 데 중요한 역할을 하는 것 !

레드-블랙 트리의 연산 (색 변경, 회전)

삽입