CS 기초 · 심화
레드-블랙 트리(Red-Black Tree)의 특징과 균형을 유지하는 방법에 대해 설명해주세요.
힌트 · 색상 규칙과 회전 연산을 생각해보세요.
자가 균형 이진 탐색 트리색 속성회전색상 반전균형 유지
모범답안
레드-블랙 트리는 자가 균형 이진 탐색 트리입니다. 검색, 삽입, 삭제 연산 시 최악의 경우에도 O(log n)의 시간 복잡도를 보장하죠. 균형을 유지하기 위해 각 노드는 '레드' 또는 '블랙' 색상을 가집니다.
레드-블랙 트리는 다음과 같은 속성을 만족해야 합니다.
- 루트 노드는 블랙입니다.
- 모든 리프 노드(NIL 노드)는 블랙입니다.
- 레드 노드의 자식은 모두 블랙입니다. (레드 노드가 연속으로 나올 수 없습니다.)
- 어떤 노드로부터 시작해서 리프 노드까지 가는 경로에서 만나는 블랙 노드의 수는 모두 같습니다.
삽입이나 삭제 후에는 이러한 속성이 깨질 수 있습니다. 이때 '회전(Rotation)'과 '색상 반전(Color Flipping)' 연산을 통해 트리의 균형을 유지합니다. 회전은 트리의 구조를 재배치하고, 색상 반전은 노드의 색상을 변경하여 속성을 만족하도록 합니다. 이러한 연산들을 통해 트리의 균형을 유지하고 효율적인 탐색 성능을 보장합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.