Algorithmen und Datenstrukturen“ ¨Ubungsblatt 8, SS

Werbung
TU Ilmenau, Fakultät für Informatik und Automatisierung
FG Komplexitätstheorie und Effiziente Algorithmen
Univ.-Prof. Dr. Martin Dietzfelbinger
Dipl.-Ing. Christopher Mattern, Dipl.-Inf. Michael Rink
http://www.tu-ilmenau.de/iti/lehre/lehre-ss-2012/aud/
Algorithmen und Datenstrukturen“
”
Übungsblatt 8, SS 2012
Besprechung: 23. Kalenderwoche
Aufgabe 1 (Konstruktion von AVL-Bäumen)
Sei T ein binärer Suchbaum. Sei P (T, S) die Menge der Pfade von T , die in der Wurzel von T
beginnen und nur Knoten aus S benutzen, genauer
P (T, S) := {(x0 , x1 , . . . , xl ) | lookup(T, xl ) vergleicht xl nacheinander mit den Schlüsseln
x0 , x1 , . . . xl ; xi ∈ S für 0 ≤ i ≤ l}.
Ein binärer Suchbaum T 0 mit der Schlüsselmenge S 0 heißt erweiterbar zu einem binären Suchbaum
T mit der Schlüsselmenge S, genau dann wenn S 0 ⊆ S und P (T 0 , S 0 ) = P (T, S 0 ).
Sei insert die Einfügeprozedur für allgemeine binäre Suchbäume und AVL insert die Einfügeprozedur für AVL-Bäume.
Im folgenden ist T ein binärer Suchbaum mit der Schlüsselmenge S = {1, 2, . . . , n}, n ≥ 1.
Gegeben ist eine Permutation π von {1, 2, . . . , n}, die die Schlüssel von T in Levelorder-Reihenfolge
aufzählt, sowie eine Sequenz von binären Suchbäumen Tk , mit
T0 ← empty(), T1 ← insert(T0 , π(1)), T2 ← insert(T1 , π(2)), . . . , Tn ← insert(Tn−1 , π(n)) .
(a) Zeigen Sie: Tk ist zu T erweiterbar, für alle 1 ≤ k ≤ n.
Hinweis: Induktion über k.
(b) Zeigen Sie: Ist T ein AVL-Baum, dann gilt |bal(v)| ≤ 1 für alle Knoten v aus Tk , 1 ≤ k ≤ n.
Hinweis: Induktion über k.
(c) Folgern Sie aus (a) und (b): Jeder AVL-Baum kann durch eine Sequenz von AVL insertOperationen ohne Rotationen erzeugt werden.
Aufgabe 2 (Rot-Schwarz-Bäume)
Ein Rot-Schwarz-Baum ist ein binärer Suchbaum bei dem alle inneren Knoten und Blätter rot
oder schwarz eingefärbt sind. Des Weiteren gelten folgende Regeln:
1. Die Wurzel und die Blätter sind schwarz.
2. Beide Kinder eines roten Knotens sind schwarz.
3. Auf jedem Weg von der Wurzel zu einem Blatt liegen gleich viele schwarze Knoten.
Die Schwarz-Tiefe b(v) eines Knotens v in einem Rot-Schwarz-Baum T ist die Anzahl der
schwarzen Knoten (innere Knoten und Blätter), ohne v, auf dem Weg von v zu einem Blatt in
Tv ; die Schwarz-Tiefe b(T ) des Baumes T ist die Schwarz-Tiefe der Wurzel von T . Zeigen Sie:
(a) Ein Rot-Schwarz-Baum T mit Schwarz-Tiefe b(T ) hat mindestens 2b(T ) − 1 innere Knoten.
(b) Die Tiefe d(T ) eines Rot-Schwarz-Baums T mit n inneren Knoten ist O(log n).
2
Algorithmen und Datenstrukturen“
”
Übungsblatt 8, SS 2012
Aufgabe 3 (Codierungsbäume)
Ein Präfixcode zur Darstellung von Zeichen aus einem endlichen Alphabet Σ, |Σ| > 1, sei als
binärer Codierungsbaum T gegeben. Jedes Blatt von T ist umkehrbar eindeutig mit einem
Zeichen x aus Σ markiert. Alle Kanten zu einem linken Kind sind mit 0 markiert und alle Kanten
zu einem rechten Kind sind mit 1 markiert.
• Das Codewort code(x) zum Zeichen x erhält man, indem man die Kantenmarkierungen
des Pfades von der Wurzel zum Blatt mit Zeichen x hintereinander reiht.
• Die Länge len(x) des Codewortes von x entspricht der Tiefe des Pfades von der Wurzel
zum Blatt mit Zeichen x.
Beispiel: Σ = {A, B, C}, code(B) = 10, len(B) = 2
T :
0
1
A
0
B
1
C
(a) Geben Sie einen Algorithmus in Pseudocode an, der auf Eingabe T und Σ für jedes Zeichen
x ∈ Σ das Codewort code(x) und die Länge des Codewortes len(x) berechnet und jeweils
in den Arrays C[1..|Σ|] und L[1..|Σ|] speichert!
(b) Geben Sie einen Algorithmus in Pseudocode zum dekodieren an! Die kodierte Zeichenkette
ist in einem Array A[1..n] gegeben (jede Zelle speichert ein Bit).
(c) Welche Laufzeiten in Θ-Notation haben die Algorithmen aus den Aufgaben (a) und (b)?
Herunterladen