Daniel Chernuchin, Udo Feldkamp, Oliver Giel, Thomas Hofmeister, Dennis Müller, Tobias Storch Dortmund, 09. Juni 2004 Abgabe: 17. Juni, 14.00 Uhr Übungen zur Vorlesung Datenstrukturen, Algorithmen und Programmierung 2 Sommersemester 2004 Blatt 9 Aufgabe 1 (5 Punkte) Wir betrachten geschlossenes Hashing auf einer Hashtabelle mit M = 13 Elementen. Starte mit der leeren Hashtabelle und füge nacheinander die Schlüssel 1024, 233, 63, 128, 1218, 689, 388, 7709, 296, 68, 381 in die Hashtabelle ein. Benutze dabei: a) Lineares Sondieren b) Quadratisches Sondieren c) Multiplikatives Sondieren Verwende für a) und b) die Hashfunktion h(x) = x mod M , für c) h(x) = (x mod (M −1))+1. Ermittle für jede Strategie die durchschnittliche und die maximale Anzahl von Sondierungen (Anzahl der Tabellenplätze, die pro Einfügeoperation untersucht werden) in diesem konkreten Beispiel. Aufgabe 2 (5 Punkte) Füge nacheinander die Zahlen 8, 9, 2, 10, 6, 1, 3, 7, 5, 4 in einen zu Beginn leeren binären Suchbaum ein. Lösche danach die Zahlen 10, 3, 8. Zeichne den entstandenen Suchbaum nach der letzten INSERT- sowie nach jeder DELETE-Operation. Aufgabe 3 (5 Punkte) Zur Schlüsselmenge {1, . . . , n} gibt es verschiedene Suchbäume, die die Schlüssel aus genau dieser Schlüsselmenge enthalten. Zum Beispiel gibt es für n = 2 zwei verschiedene Suchbäume mit Schlüsselmenge {1, 2}. Wieviele verschiedene binäre Suchbäume gibt es, wenn n beliebig ist? Genauer: Finde eine geeignete Rekursionsgleichung, argumentiere, dass sie korrekt ist, und berechne mit Hilfe der Rekursionsgleichung die Anzahl verschiedener binärer Suchbäume für die Schlüsselmenge {1, 2, 3, 4, 5}. Hinweis: Du brauchst die Rekursionsgleichung nicht zu lösen, also keine explizite Formel für sie anzugeben. Aufgabe 4 (5 Punkte) Beweise oder widerlege folgende Aussagen zu binären Suchbäumen: a) Verschiedene Reihenfolgen von INSERT-Operationen führen auch immer zu verschiedenen binären Suchbäumen. b) Gibt man die Knoten eines binären Suchbaums in Inorder-Reihenfolge aus, so sind die Schlüssel in der Ausgabe aufsteigend sortiert. c) Der minimale Schlüssel ist immer in einem Knoten maximaler Tiefe abgelegt. d) Entfernt man die Schlüssel eines Baums in aufsteigender Reihenfolge, so tritt nie Fall 3 der DELETE-Operation ein (siehe Skript, S. 72). e) Die Preorder-Reihenfolge eines binären Suchbaums legt das Aussehen des Baums eindeutig fest.