성립 증명 (positive proof)
위반을 우연히 못 찾았다는 말이 아니라 definition의 모든 항목을 확인하는 증명입니다. 체크리스트 누락 하나가 있으면 Ja 답안의 근거가 불완전합니다.
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입니다. |
Tree 3은 네 후보 중 유효한 Red-Black Tree입니다. 참이라고 답할 때도 근거 없이 '모양이 균형'이라고 쓰면 부족합니다.
root 13은 black이고 key order가 맞습니다. red node 3,21,18은 모두 black child만 가지며, 강의 \(\text{SH}(\text{nil})=0\)SH(nil)=0기준 모든 terminal path의 black internal node 수가 3으로 같습니다.
positive answer에서는 만족한 속성을 명시하라는 문제 요구가 있으므로 체크리스트 전 항목을 짧게 확인합니다.
유효하다는 주장은 위반을 못 찾았다는 말보다 강합니다. 모든 rule을 빠짐없이 확인해야 합니다.
BST, root, red-red, black-height 순으로 답안을 쓰면 누락을 막을 수 있습니다.
핵심 규칙\(\text{유효} \Longleftrightarrow \text{every} \text{RB} \text{rule} \text{holds}\)valid ⇔ every RB rule holds
사각형 3,21,18 각각의 바로 아래 child를 봅니다. 모두 black circle이며 빈 child도 black NIL입니다.
red node의 parent가 red여도 같은 red-red edge이므로 위쪽과 아래쪽 모두 실제로는 edge 기준 검사입니다.
R parent ⇒ children B왼쪽 짧은/긴 경로와 오른쪽 짧은/긴 경로를 대표로 골라 black 수를 셉니다. 모두 root와 두 추가 black internal nodes로 3이며 NIL은 \(\text{SH}(\text{nil})=0\)SH(nil)=0입니다.
각 branching node의 두 child subtree Schwarzhöhe가 같은 것을 bottom-up label로 확인하면 모든 경로를 빠짐없이 증명할 수 있습니다.
SH(nil)=0핵심 규칙\(\text{루트}-\text{to}-\text{terminal} \text{black} \text{count}=3\)root-to-terminal black count=3
invalid tree는 위반 하나로 끝낼 수 있지만 valid tree는 ‘못 찾았다’가 아니라 모든 필수 규칙이 성립함을 보여야 합니다. bottom-up Schwarzhöhe label은 많은 path를 빠짐없이 압축해 증명하는 방법입니다.
위반을 우연히 못 찾았다는 말이 아니라 definition의 모든 항목을 확인하는 증명입니다. 체크리스트 누락 하나가 있으면 Ja 답안의 근거가 불완전합니다.
\(\text{SH}(\text{nil})=0\)SH(nil)=0에서 시작해 양쪽 child의 Schwarzhöhe가 같은지 확인하고 black node이면 1을 더해 parent label을 만듭니다. 한 node에서 다르면 즉시 invalid입니다.
SH=1입니다.red node와 바로 연결된 child가 red인지 edge 기준으로 확인합니다. 없는 child는 black NIL이므로 red leaf는 no-red-red 규칙을 만족할 수 있습니다.
졸업하려면 한 과목에서 낙제하지 않은 정도가 아니라 모든 필수 과목의 합격 성적을 제시해야 합니다. BST, root color, red-red, black-height가 각각 필수 과목이고 SH label은 경로 과목의 채점표입니다.
비유의 한계: 실제 과목은 평균으로 보상될 수 있지만 RB 규칙은 하나라도 실패하면 invalid입니다. 비유는 체크리스트 완전성만 설명합니다.
SH(root)=3왼쪽·오른쪽 모든 terminal path의 black internal node 수가 3입니다.tree 그림의 각 node 옆에 SH label을 두고 red node에는 R badge를 표시합니다. root 13의 두 child subtree SH가 2로 같아 최종 root count 3이 됩니다.
black root 10, left red 5 아래 black leaves 3·7, right black 15인 tree를 bottom-up으로 검사합니다.
black leaves 3,7,15는 nil child의 0에 자기 black 1을 더해 \(\text{SH}=1\)SH=1입니다.
SH(3)=SH(7)=SH(15)=1두 child SH가 1로 같고 red 5는 black count를 더하지 않습니다.
\(\text{SH}(5)=1\)SH(5)=1left SH 1과 right SH 1이 같고 black root에서 1을 더합니다.
\(\text{SH}(10)=2 \to \text{유효}\)SH(10)=2 → valid작은 예제의 결론: edge depth가 달라도 red node는 black count를 늘리지 않으므로 equal Schwarzhöhe를 만족할 수 있습니다.
네. 모든 subtree가 ancestor가 만든 key interval을 지키며 inorder가 오름차순입니다.
root 13은 black이고 red 3의 children 1·4, red21의 16·24, red18의 17·19가 모두 black입니다.
13-9-11은 13,9,11 세 개이고 13-9-3-1은 red3을 빼고 13,9,1 세 개입니다.
21과18은 red라 세지 않고 각 path가 black root13과 black internal 두 개를 지나므로 모두 3입니다.
네 규칙을 모두 한 문장씩 확인하고 \(\text{SH}(\text{nil})=0 \text{convention}\)SH(nil)=0 convention아래 common Schwarzhöhe 3이라고 씁니다.
witness(paths)네 행의 \(\text{black}_{\text{nodes}}\)black(nodes)길이가 모두 \(\text{course}_{\text{count}} 3\)course(count) 3인지 자동 확인합니다.sh(labels)를 bottom-up으로 계산할 때 모든 internal node의 left/right child SH가 같고 root label이 3인지 확인합니다.힌트: 각 branching node의 두 child를 모두 검사하는 방법을 생각합니다.
정답: 표본만으로는 부족할 수 있습니다. 각 node에서 left/right SH equality를 bottom-up으로 확인하면 모든 path를 빠짐없이 증명합니다.
힌트: NIL을 +1하지 않습니다.
정답: 3입니다. 예를 들어 13-9-11에서 black internal nodes 13,9,11을 셉니다.
Ja. Der Baum ist ein BST, die Wurzel 13 ist schwarz, jeder rote Knoten (3,21,18) hat schwarze Kinder, und alle Pfade zu Blättern/Halbblättern haben dieselbe Schwarzhöhe 3; SH(nil)=0.
SH(nil)=0수치를 혼동한다.복기 문언, 강의 정의, 공식 연습 풀이, 추가 유도를 구분해 표시합니다.
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