¢¡¤£¦¥¤§© ¤

Werbung
http://www.mpi-sb.mpg.de/~sschmitt/info5-ss01
IS
UN
R
S
SS 2001
E R SIT
S
Schmitt, Schömer
SA
IV
A
Grundlagen zu
Datenstrukturen und Algorithmen
A VIE N
8. Übungsblatt
Abgabetermin: Montag, 28. Mai 2001 vor der Vorlesung
Aufgabe 1 (10+10 Punkte) Fügen Sie die Schlüsselfolge {16, 44, 21, 5, 19, 22, 8, 33, 27, 30} gemäß
der Hashfunktion h(x) = x mod 11 in eine Hashtabelle der Größe 11 mit offener Adressierung
ein.
a) Verwenden Sie linear probing: h(x, i) = (h(x) + i) mod 11.
b) Verwenden sie double hashing mit der zweiten Hashfunktion h2 (x) = 1 + (x mod 10), d.h.
h(x, i) = (h(x) + i · h2 (x)) mod 11.
Beschreiben Sie jeweils (kurz) wie das Feld gefüllt wird.
Aufgabe 2 (10 + 10 Punkte) Man kann bei Hashing mit offener Adressierung die lineare Kollisionsstrategie auch dahingehend ändern, daß man
h(x, i) = (h(x) + c · i) mod m
betrachtet, wobei c eine ganze Zahl mit 0 < c < m ist.
a) Es sei m = 15. Welche Zahlen c sind für die lineare Kollisionsstrategie ungeeignet? Warum?
b) Jetzt sei m ∈ N beliebig. Welche Zahlen c sind ungeeignet? Warum?
Aufgabe 3 (5∗ + 10∗ Punkte) Wir definieren einen neuen Datentyp String, der zusätzlich zu
den bekannten Zeichen noch ein weiteres Zeichen ∞ enthalten kann. Ein String kann also als
eine Folge von Zahlen aus {0, 1, . . . , 256} betrachtet werden. Wir suchen ein 1-universelle Klasse
von Hashfunktionen für diesen Datentyp.
a) Wir betrachten zunächst Strings der festen Länge l. Das Universum U ist also die Menge
aller Strings der Länge l. Geben Sie eine 1-universelle Klasse von Hashfunktionen h : U →
{0, 1, . . . , 256} an.
b) Lösen Sie die Aufgabe, wenn U die Menge aller (beliebig langen) Strings ist. Überlegen
Sie sich auch, wie man eine der (unendlich vielen) Hashfunktionen zufällig aus der Klasse
auswählt.
Da die Menge unendlich ist, muß die Definition von 1-universell etwas abgeändert werden:
Eine Klasse von Hashfunktionen h : U → {0, 1, . . . , m − 1} heißt 1-universell, wenn für alle
x, y ∈ U mit x 6= y gilt: Bei zufälliger Wahl einer Funktion h ist die Wahrscheinlichkeit
dafür, daß h(x) = h(y) ist, höchstens m1 .
Aufgabe 4 (5 + 10 + 10 Punkte) Wir betrachten binäre Suchbäume. Sie können davon ausgehen,
daß alle eingetragenen Elemente verschieden sind.
a) Geben Sie die Implementierung von handle minimum(handle v) und
handle maximum(handle v) an.
b) Zeigen Sie die Korrektheit der Implementierung von succ, d.h. zeigen Sie, daß es für succ
wirklich nur die beiden angegebenen Fälle gibt.
c) Geben Sie die Implementierung von handle pred(handle v) an.
Herunterladen