Informatik IV

Werbung
Informatik IV
SS 2006
Institut für Informatik, Abt. I
Christel Baier, Sascha Klüppelholz, Jörn Ossowski,
Christiane Beyer, Stefan Dombrowski, Li Le, Andreas Lenerz, Dennis Mitzel,
Rebecca Reiffenhäuser, Uwe Schuster, Manuel Wedemeyer, Yang Guang
6. Übungsblatt
Hinweise zum Übungsbetrieb finden Sie unter
http://web.informatik.uni-bonn.de/I/Lehre/Vorlesungen/InfoIV-06/Informatik IV SS06/
Die Abgabe der theoretischen Übungen erfolgt jeweils mittwochs vor Beginn der Vorlesung
(bis 10 Minuten nach 11 Uhr) in Hörsaal D. Diejenigen, die diesen Termin nicht wahrnehmen können,
haben die Möglichkeit, ihre Lösungen bis dienstags um 18 Uhr in den Briefkasten “Institut für
Informatik Abteilung I, Prof. Baier und Mitarbeiter” im Foyer des 1. Stocks einzuwerfen.
Abgabe:
Di, 16.05.06 18 Uhr Briefkasten
oder Mi., 17.05.06. 11:10 HS D
Besprechung: 24.05.2006 - 30.05.2006
Alle Übungen finden in N327 statt,
außer der Montagsübung von 17-19 Uhr.
Diese findet in Raum A121 statt.
Hinweis: Die Übung von Donnerstag den 25.5. findet am Mittwoch den 24.5. ab 17:15 Uhr
in N328 statt. Anwesenheitspflicht besteht nicht.
1
Aufgabe 6.1 [Beispiele für Hashing mit offener Adressierung,
1+1+1=3 Pkt.]
(32)
Erstellen Sie durch sukzessives Einfügen eine Hashtabelle mit m = 11 Zellen für die Schlüsselwerte
10, 22, 31, 4, 15, 28, 17, 88, 59
a) Verwenden Sie dabei lineare Sondierung mit der primären Hashfunktion h(x) = x mod 11.
b) Verwenden Sie dabei quadratische Sondierung mit der primären Hashfunktion h(x) =
x mod 11.
c) Verwenden Sie dabei double Hashing mit der primären Hashfunktion h(x) = x mod 11
und der sekundären Hashfunktion h′ (x) = 1 + (x mod 10).
Aufgabe 6.2 [Mittlere Kosten für Hashing mit offener Adressierung, 5 Pkt.]
(33)
Zeigen Sie, daß unter der Annahme perfekter Sondierungsfolgen für eine nur durch Einfügen
(ohne Löschoperationen) aufgebaute Hashtabelle mit offener Adressierung folgendes gilt:
m
m
1
+
K (n, m) ≤
· ln
n
n
1− m
n
Hierbei bezeichne K (n, m) die erwartete Anzahl an Sondierungsschritten für eine erfolgreiche
Suche, wobei n die Anzahl an dargestellten Datensätzen und m die Größe der Hashtabelle ist,
mit n < m.
Hinweis: Zeigen Sie zunächst, daß
K (n, m) ≤
m
· (H(m) − H(m − n)),
n
j
wobei H(i) = Σi=1 1i . Benutzen Sie dann die in der Analyse von Quicksort verwendeten Abschätzungen der Partialsummen der harmonischen Reihe.
Aufgabe 6.3 [AVL-Bäume, 4 Pkt.]
(46)
Erstellen Sie durch sukzessives Einfügen der Schlüsselwerte
90, 80, 30, 60, 50, 70, 40
einen AVL-Baum (beginnend mit dem leeren Baum).
Skizzieren Sie den Baum mindestens unmittelbar vor und nach jeder Einfachrotation, bzw. Doppelrotation.
2
Aufgabe 6.4 [Löschen in AVL-Bäumen, 3 Pkt.]
(112-B)
Gegeben ist folgender AVL-Baum T .
43
23
60
37
53
47
77
57
Löschen Sie den Knoten mit Schlüsselwert x = 23 in T .
Skizzieren Sie den entstandenen Suchbaum jeweils unmittelbar nach dem Löschen, sowie nach
den gegebenenfalls durchzuführenden Rebalancierungen. Geben Sie auch jeweils die Art der
gegebenfalls durchzuführenden Rebalancierungen (Rotation/Doppelrotation) an.
Aufgabe 6.5 [Blattsuchbäume, 5 Pkt.]
(48)
Skizzieren Sie Algorithmen für das Suchen, Löschen und Einfügen in Blattsuchbäumen, die
jeweils die Laufzeit O (Höhe(T )) haben.
Aufgabe 6.6 [k-ter Schlüsselwert im AVL-Baum, 5 Pkt.]
(49)
Geben Sie einen Algorithmus an, der als Eingabe einen AVL-Baum T mit n Knoten und eine
Zahl k ∈ {1, . . ., n} erhält und der den k-kleinsten Schlüsselwert von T ausgibt und die Laufzeit
O (log n) besitzt.
HINWEIS : Es gibt eine Lösung, welche die interne Darstellung der Knoten durch den Schlüsselwert und Verweise auf die beiden Söhne (falls existent) in geeigneter Weise erweitert. Eine
solche Erweiterung darf jedoch die logarithmischen Laufzeiten der Operationen Einfügen und
Löschen nicht verändern. Sie dürfen davon ausgehen, daß der gegebene AVL-Baum in Ihrer
erweiterten Darstellung vorliegt.
Beschreiben Sie Ihre Erweiterung und begründen Sie die Erhaltung der logarithmischen Laufzeiten für die Operationen Einfügen und Löschen, falls sie eine wie im Hinweis erwähnte Erweiterung verwenden.
3
Herunterladen