Übung Datenstrukturen Bäume Übung Binärbaum 7 2 10 1 9 34 7 3 8 25 7 5 11 13 19 3 Aufgabe 1 Geben Sie die Reihenfolge der besuchten Knoten nach Prä-, In-, Post- und Levelorder an! 17 Übung Binärbaum Aufgabe 2 Schreiben Sie je eine Funktion / Methode, die a) die Anzahl der Blätter b) die Anzahl linker Söhne c) die Höhe eines beliebigen binären Baumes bestimmt. Übung Binärbaum 7 10 Aufgabe 3 Gegeben sei ein beliebiger binärer Baum. Jeder Knoten beinhalte einen Integer-Wert. 1 9 Schreiben Sie eine Funktion / Methode, die testet, ob 34 7 8 25 sich ein Knoten mit einem bestimmten Integer-Wert im Baum befindet! 3 Übung Binärbaum Aufgabe 4 Schreiben Sie eine Funktion, die einen gegebenen Binärbaum wie folgt spiegelt: 17 10 9 21 13 17 21 10 13 9 Übung Binärbaum Aufgabe 5 Schreiben Sie eine iterative Funktion zur Inorder-Durchmusterung eines binären Baumes. Jeder Knoten beinhalte einen Integer Wert. Hinweis: Zur Zwischenspeicherung der Baumknoten steht ein ADT nodeStack mit den üblichen Methoden (pop, push, isEmpty) zur Verfügung. Übung Binärbaum Aufgabe 6 Schreiben Sie eine Funktion, die einen binären Baum in Levelorder formatiert auf dem Bildschirm ausgibt (d.h. für jede neue Baumebene eine neue Zeile). Jeder Knoten des Baumes enthalte einen ganzzahligen Wert. Hinweis: Zur Zwischenspeicherung der Baumknoten ist ein ADT nodeQueue mit den üblichen Methoden (enqueue, dequeue, isEmpty) gegeben. Übung Suchbaum 17 10 Aufgabe 7 9 21 13 39 Löschen Sie (grafisch) aus dem dargestellten binären Suchbaum nacheinander 33 die Elemente 13, 21, 39, 17. Wenden Sie dabei die beiden in der Vorlesung vorgestellten Strategien an. 23 76 36 45 Geben Sie nach jedem Löschvorgang den resultierenden Baum an. Hinweis Wenn ein Knoten mit zwei Söhnen gelöscht wird, ist das Ergebnis sowohl mittels „Löschen durch Verschmelzen" als auch "Löschen durch Kopieren" darzustellen. 35 63 99 Übung Suchbaum Aufgabe 8 Schreiben Sie eine Funktion / Methode, die testet, ob ein gegebener Binärbaum ein Suchbaum ist. Übung Suchbaum Aufgabe 9 Schreiben Sie eine iterative Funktion / Methode, die einen neuen Wert in einen binären Suchbaum einfügt. Übung Suchbaum Aufgabe 10 Entwickeln Sie einen Algorithmus, der ein (aufsteigend) sortiertes Feld von N Elementen derart in einen binären Suchbaum einfügt, dass der Baum nach dem Einfügen aller Elemente perfekt balanciert ist. Übung Suchbaum Aufgabe 11 struct node { Die Knoten eines binären Suchbaums wurden zusätzlich mit int info; einer Balanceinformation versehen. int balance; node* left; Die Balance eines Knotens entspricht der Differenz (Höhe des rechten Teilbaums) – (Höhe des linken Teilbaums). node* right; }; Modifizieren Sie die Einfügefunktion für binäre Suchbäume derart, so dass nach dem Einfügen alle Balanceinformationen wieder korrekt sind. Hinweis Vor dem Einfügen sind alle Balanceinformationen korrekt. Aktualisieren Sie deshalb nur die Knoten, deren Balance sich tatsächlich geändert hat. Übung AVL-Baum Aufgabe 12 Fügen Sie in einen anfangs leeren AVL-Baum nacheinander die Zahlen von 1 bis 7 ein. Zeichnen Sie den Baum nach jedem Einfügeschritt und notieren Sie dabei den Balancewert jedes Knotens. Falls nach einem Einfügeschritt eine Verletzung des AVL-Kriteriums auftritt, kennzeichnen Sie den betroffenen Knoten, führen die erforderliche Gegenmaßnahmen durch und zeichnen den Baum erneut. Übung AVL-Baum 17 10 9 39 21 13 5 63 39 7 40 64 11 66 Aufgabe 13 Zeichnen Sie die vorliegenden AVL-Bäume nach dem Löschen des Elements 39. Geben Sie im Fall einer erforderlichen Ausbalancierung die jeweils benutzte Methode (Einfach- oder Doppelrotation) an. Übung AVL-Baum 37 10 55 5 13 7 11 43 21 39 29 66 46 51 61 65 77 70 Aufgabe 14 88 99 Zeichnen Sie den vorliegenden AVL-Baum nach dem Löschen des Elements 7. Geben Sie im Fall einer erforderlichen Ausbalancierung des Baumes die jeweils benutzten Methoden (Einfach- oder Doppelrotation) an. Übung B-Baum Aufgabe 15 Gegeben sei folgender B-Baum der Höhe 2 und Ordnung 5: Fügen Sie in diesen B-Baum nacheinander die Schlüssel 33, 29 und 1 in der angegebenen Reihenfolge ein! Zeichnen Sie nach jeder Einfügung den resultierenden Baum und benennen bzw. begründen Sie Ihre Schritte! Übung B-Baum .17.48. . 2. 3. . . . .23.29. . . . .55.65. . . Aufgabe 16 Löschen Sie aus dem vorliegenden B-Baum zunächst das Element 48 und zeichnen Sie den resultierenden Baum! Wiederholen Sie danach den Vorgang für Element 2!