Ü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