Einführung Informatik/Algorithmen und Datenstrukturen Prof. Dr. Gunter Saake SS 00 Ilona Blümel, Stephan Dassow, Dr. Martina Engelke, Roland Jesse, Marco Plack, Dr. Kai-Uwe Sattler, Heiko Timm 12. Übungsblatt Aufgabe 57 Schreiben Sie eine Methode delete(int x) für das Löschen von Knoten mit gegebenem Element in Suchbäumen (keine AVL-Bäume!). Welche Fälle sind zu unterscheiden? Aufgabe 58 a) Was ist ein ausgeglichener (AVL-) Baum? Weshalb ist es erforderlich, binäre Bäume auszugleichen? b) Erläutern Sie den Algorithmus für das Einfügen von Knoten mit gegebenem Element in AVLBäumen am Beispiel des Einfügens der natürlichen Zahlen von 14, 15, 17, 7, 5, 10 und 16 in dieser Reihenfolge. c) Ist es sinnvoll, die bisher genutzte Datenstruktur Baum zu erweitern? Aufgabe 59 Gegeben sei folgender AVL-Baum: 25 12 3 1 38 15 27 47 26 46 48 Löschen Sie die Knoten 15, 38, 26, 25 und 12 in dieser Reihenfolge. Geben Sie alle notwendigen Schritte (Rotationen) beim Löschen an, damit der Baum ausgeglichen beibt. Skizzieren Sie den AVLBaum nach jedem Löschen eines Elementes. Aufgabe 60 Was ist ein B-Baum der Ordnung m? Beschreiben Sie den Aufbau eines B-Baumes an einem selbstgewählten Beispiel. Geben Sie eine geeignete Datenstruktur an! Aufgabe 61 Tries a) Geben Sie einen Patricia-Baum über dem Alphabet = { A,B,C,D } für die Zeichenketten AAABD, AACCD, ABABCD, ABBBCD, BABBCD, CBABDA, CCAABD, CCBACD an. b) Beschreiben Sie eine geeignete Datenstruktur zur Repräsentation von Knoten eines PatriciaBaums (Java-Klasse) ! c) Geben Sie basierend auf der Datenstruktur aus b) einen Algorithmus zum Suchen an (Java oder Pseudo-Code)! d) Skizzieren Sie einen Algorithmus zum Einfügen einer neuen Zeichenkette ! Aufgabe 62 Verkettung der Überläufer bei Kollision a) Geben Sie die Typdeklaration für die unten angegebene Hashtabelle an und initialisieren Sie die Tabelle. b) Fügen Sie die Strings Dassow, Engelke, Jesse,. Blümel und Plack in die folgende Hashtabelle ein. Die Hashfunktion soll nur vom dritten Buchstaben der Strings abhängen und ergibt sich aus der Nummer dieses Buchstabens im Alphabet modulo 11. Nummer von Buchstaben: a b c d e f g h i 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 10 9 j k l m n o p q r s t u v w x y z ä ö ü ß 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Saake Timm Sattler Aufgabe 63 Gegeben sei die Hashtabelle 0 6 1 11 2 9 3 24 4 73 5 18 6 3 Diese ist unter Verwendung der Hashfunktion h(k) = k mod 7 und linearem Sondieren durch Eintragen der Elemente in einer gewissen Reihenfolge entstanden (k sei eine natürliche Zahl). Geben Sie alle Reihenfolgen an, in denen die Elemente in die anfangs leere Hashtabelle eingefügt worden sein können. Aufgabe 64 Gegeben sei die Menge M = {11, 13, 17, 19, 23, 25, 29, 31, 35}. a) Geben Sie für die Hash-Funktion f(x) = x mod 10 die zu M gehörende Hashtabelle bei Verkettung der Überläufer an. Bestimmen Sie die Hashtabelle zu M mit m = 10 (Größe der Hashtabelle) und quadratischer Sondierung unter Verwendung der Hash-Funktion f(x) = x mod 7. b) Implementieren Sie in JAVA das Einfügen und Aufsuchen von Daten (vom Typ int) mittels Verkettung der Überläufer unter Verwendung der Hash-Funktion f(x) = x mod p mit festem gegebenen p.