Übung 10 10. Suchalgorithmen

Werbung
Übung 10
zur Vorlesung
Algorithmen und Datenstrukturen II
im SS 2004.
Prof. Dr. W. Kowalk,
Abteilung Rechnernetze,
Department Informatik, Fakultät II, Universität Oldenburg.
10.
Suchalgorithmen
10.1
Suchbäume (50 Punkte)
Unter einem Suchbaum versteht man einen (meist) binären Baum, in welchem Daten effizient gespeichert und referenziert werden können.
a.
Die folgenden Fragen beziehen sich jeweils auf Suchbäume bzw. k-Bäume. Wiederholen
Sie dazu die jeweiligen Definitionen und spezifizieren Sie, was ein vollständiger bzw.
ausgeglichener k-Baum ist.
i. Beweisen Sie mathematisch vollständig, dass der Durchlauf durch einen binären Suchbaum „inorder“ die Knoten genau in aufsteigender Reihenfolge behandelt.
ii. Gibt es eine Möglichkeit, die Knoten in einem Suchbaum in absteigender Reihenfolge
zu behandeln? Beweisen Sie Ihre Antwort.
iii.Welcher Zusammenhang besteht zwischen der Anzahl der Knoten in einem vollständig
ausgeglichenen k-Baum und der Tiefe dieses Baums. Was ändert sich, wenn der Baum
zwar ausgeglichen, aber nicht vollständig ist?
iv. Fügen Sie in einen leeren Suchbaum die Knoten 1,2,3,4,5,6,7 ein. Welche Struktur entsteht? Vergleichen Sie auch mit 10.2.b.
v. Was ist die maximal mögliche Suchzeit in einem nicht ausgeglichenen Suchbaum?
10.2
AVL-Bäume (50 Punkte)
AVL-Bäume bewahren die Ausgeglichenheit eines Baumes, indem beim Einfügen oder
Entfernen eines Knotens Rotationen durchgeführt werden, welche den Unterschied der
Tiefe zweier Teilbäume auf eins halten.
a.
Welche der unten aufgelisteten binären Bäume sind AVL-Bäume und welche nicht? Begründen Sie Ihre Antwort.
i.
, ii.
, iii.
, iv.
, v.
10.2
AVL-Bäume (50 Punkte)
b.
Fügen Sie in einen leeren AVL-Baum die Knoten 1,2,3,4,5,6,7 ein. Welche Rotationen
sind jeweils durchzuführen, damit der Baum stets ein AVL-Baum bleibt. Welcher Baum
entsteht? Vergleichen Sie dieses mit einem einfachen Suchbaum 10.1.a.iv.
c.
Fügen Sie in den Baum i. die Knoten 20, 10 und 30 in dieser Reihenfolge ein. Welche Rotationen sind jeweils durchzuführen, damit der Baum stets ein AVL-Baum bleibt. Welcher
Baum entsteht?
d.
Löschen Sie in dem Baum iv. den Knoten mit der Nummer 10. Welche Rotationen sind
durchzuführen, damit der Baum stets ein AVL-Baum bleibt. Welcher Baum entsteht hierdurch?
Hinweis: Programmieraufgaben sind stets in Java zu lösen. Die Java-Programme sind zusätzlich zu
einer schriftlichen Fassung als Text-Datei an den jeweiligen Tutor per E-Mail zu schicken. Die EMail muss folgende Subjekt-Zeile enthalten:
Betreff: AD2: Uebung <Nr>, <Name1>, <Name2>
Alle Programme eines Übungszettels sind in einer Datei zusammenzufassen.
Die Übungen sind bis Freitag, 2.07.2004, 12.00 Uhr in dem Kasten Ihres Tutors abzugeben.
∅ | max
50%
80%
100%
120%
150%
200%
300%
1000
2,2 | 4
2,8 | 5
2,4 | 5
2,5 | 6
2,6 | 7
2,9 | 8
3,6 | 10
2000
2,1 | 4
2,3 | 5
2,4 | 6
2,5 | 7
2,6 | 8
2,9 | 9
3,6 | 11
5000
2,2 | 5
2,3 | 6
2,4 | 6
2,5 | 7
2,6 | 8
2,9 | 9
3,6 | 11
7500
2,2 | 5
2,3 | 6
2,4 | 7
2,5 | 7
2,6 | 8
2,9 | 10
3,6 | 11
10000
2,2 | 5
2,3 | 6
2,4 | 7
2,5 | 8
2,6 | 8
2,9 | 10
3,6 | 11
Herunterladen