핵심 학습 항목 (Red-Black Tree)
BST에 node color와 black-height 규칙을 추가해 height를 제한하는 binary search tree입니다. BST order, root black, no red-red, equal black-height를 모두 만족해야 합니다.
6. Fortgeschrittene Datenstrukturen (12 Punkte)
선행지식이 전혀 없어도 이 페이지 하나에서 용어를 배우고, 작은 예제를 거쳐 실제 시험 풀이와 검산까지 따라가도록 구성했습니다.
문제 문언·배점·후보 그림은 비공식 SoSe 2025 복기 lines 270-295와 연결 이미지에서 가져왔습니다. 정의와 수치 convention은 Lecture 04 pp.3-5, 45-46, p.57, p.114, pp.122-126으로 교차 확인했습니다. Sheet06-Sol은 RB/AVL, Sheet08-Sol은 B-Tree 삽입을 뒷받침하며, 일반 교재의 NIL-inclusive black count를 강의 SH 수치와 섞지 않습니다.
기호를 모른 채 풀이를 외우지 않도록, 이 문제에서 실제로 쓰는 뜻과 작은 예를 먼저 확인합니다.
| 기호·용어 | 뜻 | 작은 예 |
|---|---|---|
| 항목 (R / rectangle) | 복기 그림에서 red node를 뜻하는 사각형입니다. 기호를 다른 색 의미로 재정의하지 않습니다. | Tree 1의 root 27은 rectangle이므로 red입니다. |
| 항목 (B / circle) | 복기 그림에서 black node를 뜻하는 원입니다. CSS 색만이 아니라 shape와 R/B label을 함께 읽습니다. | Tree 3의 root 13은 black circle입니다. |
\(\text{SH}(\text{nil})=0\)SH(nil)=0 | NIL sentinel은 black으로 모델링하지만 강의 Schwarzhöhe 수치에서는 nil 자체에 1을 더하지 않습니다. | Tree 3의 root-to-terminal black 수는 3이지 4가 아닙니다. |
\(t=2\)t=2 | B-Tree의 Grad 또는 minimum degree이며 non-root node의 key 수는 t-1부터 2t-1입니다. | \(t=2\)t=2이면 한 node는 1~3 keys를 가집니다. |
\(B(v)=\text{hR}-\text{hL}\)B(v)=hR-hL | 강의의 AVL balance factor로 오른쪽 subtree 높이에서 왼쪽 높이를 뺍니다. | \(B(v)=-2\)B(v)=-2이면 이 convention에서는 left-heavy입니다. |
| 실패 | AVL 검사 중 이미 균형 위반을 찾았다는 별도 반환값이며 유효한 높이 -1과 혼동하지 않습니다. | empty tree는 height -1, invalid subtree는 FAIL입니다. |
Red-Black Tree 판정은 모양이 균형처럼 보이는지 눈대중으로 정하는 문제가 아닙니다. BST order, root color, red-red, black-height를 체크리스트 순서대로 검사합니다.
Tree 1의 root 27은 사각형이므로 red입니다. 문제 범례에서 사각형=red, 원=\(\text{circle}=\text{black}\)circle=black이며 기호를 바꾸면 안 됩니다.
root가 black이어야 한다는 규칙 하나만으로 이미 invalid입니다. 여기에 경로별 black-height까지 비교하면 추가 위반도 확인됩니다.
Rectangle은 red, circle은 black입니다. 색을 반대로 읽으면 모든 판정이 무너집니다.
NIL child는 그림에 없지만 black leaf로 존재한다고 간주합니다.
rectangle=Rcircle=BNIL=BRed-Black Tree의 root는 반드시 black입니다. Tree 1은 root 27이 red라서 다른 규칙을 보기 전에도 탈락합니다.
답안에는 단순히 '아니다'가 아니라 정확히 어느 node가 어느 규칙을 위반했는지 써야 합니다.
root.color=BLACK한 node에서 leaf·half-leaf 방향으로 내려가는 경로의 black internal node 수가 같아야 합니다. NIL sentinel은 black이지만 강의 수치는 \(\text{SH}(\text{nil})=0\)SH(nil)=0이므로 NIL 자체를 더하지 않습니다.
왼쪽의 21 경로와 12 경로만 비교해도 1 대 3으로 다르므로 위반입니다.
SH(nil)=0black(27-18-21)=1black(27-18-9-12)=3Red-Black Tree 판정은 ‘대충 균형으로 보인다’가 아니라 독립된 규칙들을 증거와 함께 검사하는 작업입니다. 한 규칙의 정확한 witness만 찾아도 invalid를 증명할 수 있고, black-height 숫자는 강의 convention에 맞춰야 합니다.
rectangle=red, circle=black범례를 바꾸지 않고 root color 위반을 즉시 찾을 수 있습니다.SH(nil)=0이라는 차이를 설명하고 두 path의 black internal node 수를 셀 수 있습니다.BST에 node color와 black-height 규칙을 추가해 height를 제한하는 binary search tree입니다. BST order, root black, no red-red, equal black-height를 모두 만족해야 합니다.
leaf는 child가 없고 half-leaf는 child가 하나인 internal node입니다. 없는 child는 NIL sentinel로 생각하며 색은 black이지만 강의 Schwarzhöhe에서 \(\text{SH}(\text{nil})=0\)SH(nil)=0입니다.
같아야 하는 수치가 다르거나 금지된 edge가 존재함을 보여 주는 최소 반례 경로입니다. invalid 답은 모든 path를 나열하지 않아도 정확한 witness 하나면 충분합니다.
건물 인증에서 입구 규정, 배선 규정, 출구 검문소 규정을 따로 검사한다고 생각합니다. 입구가 규정을 어기면 즉시 불합격이고, 두 출구까지 검은 검문소 수가 다르면 또 다른 불합격 근거가 됩니다.
비유의 한계: 건물은 한 규정 실패 뒤 검사를 끝낼 수 있지만 학습 페이지에서는 추가 위반도 찾아 규칙 간 차이를 연습합니다. NIL의 색과 SH 수치는 실제 검문소 비유와 완전히 같지 않습니다.
27 = R rootroot black 규칙을 즉시 위반하는 최소 witness입니다.root 27은 risk 색으로, black-height 비교 path는 서로 다른 강조선으로 표시합니다. 각 node 옆 label은 강의 \(\text{SH}(\text{nil})=0\)SH(nil)=0수치를 사용합니다.
black root 10 아래 red leaf 5와 red leaf 15가 있는 가장 작은 valid color 예시를 검사합니다.
\(5<10<15\)5<10<15이고 root 10은 black이므로 첫 두 규칙을 만족합니다.
red 5와15의 children은 모두 black NIL이며 red child가 없습니다.
no R-R PASS두 terminal 방향 모두 black internal node 10 하나를 지나고 \(\text{SH}(\text{nil})=0\)SH(nil)=0입니다.
left=1, right=1작은 예제의 결론: NIL의 색은 black이지만 black-height 숫자에 NIL을 1로 더하지 않아도 equality 판정은 정확히 수행할 수 있습니다.
사각형이므로 red입니다. 복기 문언은 rectangle을 red로 고정하고 기호 재정의를 금지합니다.
root는 black이어야 하는데 27이 red이므로 Tree 1은 즉시 Nein, invalid입니다.
27(R)-18(B)-21(R)에서 black internal node는 18 하나이므로 강의 기준 1입니다.
27(R)-18(B)-9(B)-12(B)에서 18,9,12 세 개를 세므로 3입니다.
Nein 뒤에 ‘Wurzel 27 ist rot’를 먼저 쓰고, 추가 근거로 두 path의 Schwarzhöhe 1과3이 다르다고 위치를 명시합니다.
black(nodes)길이가 각각 \(\text{course}_{\text{count}} 1\)course(count) 1과3과 같은지 확인하고 NIL을 목록에 넣지 않습니다.SH(nil)=1이 아닌가?힌트: 색 속성과 black-height base-case 정의를 분리합니다.
정답: 강의가 NIL을 black sentinel로 모델링하면서도 Schwarzhöhe 재귀의 base case를 \(\text{SH}(\text{nil})=0\)SH(nil)=0으로 정의했기 때문입니다.
힌트: negative 답의 최소 요구를 봅니다.
정답: 네. 정확한 규칙과 위치를 쓴 root 27 witness 하나로 invalid가 증명됩니다. black-height 위반은 추가로 견고한 근거입니다.
Nein. Die Wurzel 27 ist rot, obwohl die Wurzel schwarz sein muss. Zusätzlich sind die Schwarzhöhen verschieden: 27-18-21 enthält 1 schwarzen internen Knoten, 27-18-9-12 enthält 3; SH(nil)=0.
SH(nil)=0이라는 수치 convention을 혼동한다.복기 문언, 강의 정의, 공식 연습 풀이, 추가 유도를 구분해 표시합니다.
AuD Gedächtnisprotokoll SoSe 2025.md · lines 270-295 and six linked images · 신뢰도/범위: 비공식 기억 복기문제 문언, rectangle/circle 범례, 네 RB 후보, 초기 B-Tree, AVL code 요구
후보 tree와 초기 B-Tree는 로컬 원본 crop과 구조를 대조했으며 정의는 현재 강의 자료로 교차 확인합니다.
Vorlesung\04AdvancedDataStructures.pdf · pp. 3-5 · 신뢰도/범위: 현재 강의 슬라이드RB 필수 규칙, leaf·half-leaf path, Schwarzhöhe와 \(\text{SH}(\text{nil})=0\)SH(nil)=0
Vorlesung\04AdvancedDataStructures.pdf · pp. 45-46 and p. 57 · 신뢰도/범위: 현재 강의 슬라이드AVL height bound 맥락, \(H(\text{empty})=-1, B=\text{hR}-\text{hL}, \text{BST}\)H(empty)=-1, B=hR-hL, BST가 AVL인지 검사하는 문제
Vorlesung\04AdvancedDataStructures.pdf · p. 114 and pp. 122-126 · 신뢰도/범위: 현재 강의 슬라이드Grad t B-Tree invariant, insertion, root split, Suchen und Splitten
Übung\AuD26_Sheet06-Sol.pdf · pp. 3-6 · 신뢰도/범위: 공식 풀이RB 규칙별 판정과 위반 node를 명시하는 답안 방식
Übung\AuD26_Sheet06-Sol.pdf · pp. 8-10 · 신뢰도/범위: 공식 풀이AVL balance convention과 node별 검사 방식
Übung\AuD26_Sheet08-Sol.pdf · pp. 1-3 · 신뢰도/범위: 공식 풀이\(t=2 B-\text{Tree}\)t=2 B-Tree삽입, split·promotion 및 각 삽입 후 중간 tree
Vorlesung\03BasicDataStructures.pdf · pp. 66-81 · 신뢰도/범위: 현재 강의 슬라이드BST subtree-wide order, height와 recursive tree operation
마지막 생성: 2026-08-02 08:51