Ubungsblatt 8 - Institut für Formale Methoden der Informatik

Werbung
Datenstrukturen und Algorithmen
Funke/Weiß
SS 2012
Institut für Formale
Methoden der Informatik
Universität Stuttgart
http://www.fmi.informatik.uni-stuttgart.de/alg
Übungsblatt 8
Abgabe: 13. Juni 2012; 23:59 Uhr
Problem 1 (4 P.)
a) Fügen Sie die Zahlen
107, 50, 100, 102, 116, 25, 42, 98, 35, 70, 61, 80
in dieser Reihenfolge in einen binären Suchbaum ein und geben Sie diesen in Baumform an.
b) Beschreiben Sie eine Funktion, welche den kleinsten Nachfolger einer gegebenen Zahl N im Suchbaum findet
und zurückgibt (d.h. die kleinste Zahl K > N , die tatsächlich im Baum gespeichert ist – N selbst muss nicht
im Suchbaum sein).
c) Geben Sie die von Ihrer Funktion ausgeführten Vergleiche an, die bei der Suche eines Nachfolgers von 82
durchgeführt werden.
Problem 2 (2 P.)
Füllen Sie einen (2,4)-Baum mit den folgenden Zahlen 10, 17, 2, 37, 38, 20, 14, 15, 5, 32, 16, 4, 6, 39, 24, 3 und geben
Sie das Endergebnis an. Die Zahlen sollen in der gegebenen Reihenfolge eingefügt werden. Die Operation “Spalten”
spaltet dabei in zwei Knoten der Größe 3 und 2, wobei hier immer der Linke davon Größe 3 haben soll.
Problem 3 (6P.)
a) Sei ein (2,4)-Baum der Höhe h mit n Blättern gegeben (die Höhe eines Baumes mit nur einem Knoten ist
hier als Null definiert). Zeigen Sie:
2h ≤ n ≤ 4h .
b) Berechnen Sie die gesamte Anzahl der Schlüssel, die in inneren Knoten eines (2,4)-Baums mit n Blättern
gespeichert sind.
c) Geben Sie die maximale Anzahl der Vorkommen eines Schlüssels in den inneren Knoten eines (2,4)-Baums
mit n Blättern an.
d) Warum wählt man die maximale Anzahl an Kindern als 4? Warum nicht 3 oder mehr als 4?
Problem 4 (5 P.)
Sei Nk ein Register, welches eine vorzeichenlose Binärzahl mit k Stellen speichert. Auf dem Register können die
beiden Operationen Inc und Dec ausgeführt werden, wobei Inc den gespeicherten Wert um 1 erhöht und Dec
entsprechend um 1 verringert. Das Register verwirft alle höherwertigen Bits an den Stellen >= k.
a) Wie hoch sind die amortisierten Kosten (Anzahl der Bitflips) einer Inc-Operation, wenn der Inhalt des
Registers 2k mal inkrementiert wird? Beweisen Sie Ihr Ergebnis mit Hilfe einer Potentialfunktion.
b) Gibt es Operationsfolgen der Länge 2k , bei denen die tatsächlichen Kosten höher sind? Wenn ja, wie hoch
sind die Kosten und wie sieht eine solche Operationsfolge aus, wenn nein warum?
P
k−1 i
c) Nun wird eine redundante Basis eingeführt: Das Register (ak−1 , ak−2 , . . . , a0 ) kodiert die Zahl
i=0 2 · ai
modulo 2k mit ai ∈ {−1, 0, 1} (d.h. 1, . . . , 1, 1 = 0, . . . 0, −1). Abgesehen von der modifizierten Basis, werden
Inc und Dec genau wie im binären Fall ausgeführt (d.h. bei Inc gibt es einen Übertrag, wenn an der letzten
Stelle eine 1 steht, bei Dec, wenn an der letzten Stelle eine −1 steht). Zeigen Sie, dass es unter diesen
Vorraussetzungen für jede Folge von Inc- und Dec-Operationen der Länge 2k die amortisierten Kosten einer
Operation O (1) sind.
Herunterladen