Übungsblatt 8 - Chair 11: ALGORITHM ENGINEERING

Werbung
Fakultät für Informatik
Lehrstuhl 11 / Algorithm Engineering
Prof. Dr. Petra Mutzel
Carsten Gutwenger, André Gronemeier, Anna-Lena Lamprecht,
Tobias Marschall, Hubert Wagner, Hoi-Ming Wong
Sommersemester 2008
DAP2 Übung – Blatt 8
Ausgabe: 29. Mai — Abgabe: 5. Juni, 14h
Globalübung: Fr. 13. Juni
Aufgabe 8.1 (5 Punkte) Gib für jeden der folgenden Binärbäume an, ob es sich um einen
AVL-Baum handelt. Falls nicht, begründe Deine Antwort.
Aufgabe 8.2 (5 Punkte) Bei der Traversierung von Binärbäumen sind die unten stehenden
Zahlenfolgen entstanden. Lassen sich die zugehörigen Binärbäume eindeutig rekonstruieren?
Falls ja, zeichne den entsprechenden Binärbaum und begründe kurz, warum dieser eindeutig
ist. Falls nein, gib zwei verschiedene Binärbäume an, dessen Traversierung zu den gegebenen
Zahlenfolgen führt.
• Baum 1: In-Order: 2, 0, 9, 4, 8, 3, 1, 6, 5, 7; Pre-Order: 3, 4, 0, 2, 9, 8, 6, 1, 5, 7.
• Baum 2: Pre-Order: 5, 4, 3, 0, 6, 1, 2, 9, 7, 8; Post-Order: 3, 6, 0, 4, 9, 7, 2, 8, 1, 5.
Hinweis: In dieser Aufgabe geht es um Binärbäume, diese müssen nicht unbedingt binäre
Suchbäume sein.
Aufgabe 8.3 (5 Punkte) Betrachte folgenden AVL-Baum:
Aus diesem Baum soll der Knoten 0 gelöscht und der Baum rebalanciert werden. Zeichne den
Baum nach jedem Schritt (wir sehen die Operationen Löschen, Links-Rotation und RechtsRotation jeweils als einen Schritt an). Schreibe dabei an jeden Knoten seine Balance (wie im
Bild oben).
Aufgabe 8.4 (5 Punkte) Gegeben sei ein beliebiger Schlüssel x und ein binärer Suchbaum
mit der Höhe h. Gib Pseudocode für einen Algorithmus an, der den größten Schlüssel y im
Suchbaum findet, für den y ≤ x gilt. Falls der Baum keinen solchen Schlüssel y enthält, ist
nil zurückzugeben. Der Algorithmus soll eine Laufzeit von O(h) haben. Erläutere kurz, warum
Dein Algorithmus korrekt ist und die geforderte Laufzeit hat.
Bonusaufgabe 8.5 (4 Bonuspunkte) Gib Pseudocode für einen Algorithmus an, der für einen
gegebenen binären Suchbaum prüft, ob es sich um einen AVL-Baum handelt. Hierbei ist es
dem Algorithmus erlaubt, an Knoten des Baumes zusätzliche Informationen zu speichern und
wieder auszulesen. Der Algorithmus soll eine Laufzeit von O(n) haben.
Bonusaufgabe 8.6 (3 Bonuspunkte) Beweise formal, dass jeder binäre Suchbaum mit n Knoten
mit O(n) Rotations-Operationen in jeden anderen binären Suchbaum mit denselben Schlüsseln
überführt werden kann.
Powodzenia!
– das DAP2-Team
Herunterladen