2.4 Durchlaufen von Bäumen Möchte man alle Elemente eines Baumes ausgeben, muss man sich Strategien überlegen, in welcher Reihenfolge der Baum durchlaufen wird. Der Zugriff auf einzelne Knoten eines Baumes ist nur indirekt über die Wurzel des Baumes möglich. Deshalb sind Algorithmen notwendig, die beim Durchlaufen eines Baumes jeden Knoten genau einmal besuchen und auswerten. Die folgenden drei rekursiven Algorithmen leisten das Gewünschte. Informatik 11 - 2. Die rekursive Datenstruktur Baum – 2.4 Durchlaufen von Bäumen
Inorder-Durchlauf (Merke: L K R) Beauftrage (rekursiv) den linken Teilbaum des Knotens k mit inorder-Durchlauf. Besuche den Knoten k selbst. Beauftrage (rekursiv) den rechten Teilbaum des Knotens k mit inorder-Durchlauf. Informatik 11 - 2. Die rekursive Datenstruktur Baum – 2.4 Durchlaufen von Bäumen
Inorder-Durchlauf (L K R) für den Beispielbaum 42 beauftragt den ltb (linker Teilbaum) mit inorder 13 beauftragt ltb mit inorder 6 beauftragt ltb mit inorder kein ltb vorhanden, also: ausgabe 6 6 beauftragt den rtb (rechter Teilbaum) mit inorder kein rtb vorhanden ---Teilbaum 6 erledigt; ausgabe 13 13 beauftragt den rtb (rechter Teilbaum) mit inorder 36 beauftragt den ltb mit inorder kein ltb vorhanden ausgabe 36 36 beauftragt den rtb mit inorder kein rtb vorhanden -- Teilbaum 36 erledigt; Teilbaum 13 erledigt; ausgabe 42 42 beauftragt den rtb mit inorder 57 beauftragt den ltb mit inorder 47 beauftragt den ltb mit inorder kein ltb vorhanden ausgabe 47 47 beauftragt den rtb mit inorder kein rtb vorhanden --Teilbaum 47 erledigt; ausgabe 57 57 beauftragt den rtb mit inorder 69 beauftragt den ltb mit inorder 64 beauftragt den ltb mit inorder kein ltb vorhanden ausgabe 64 64 beauftragt den rtb mit inorder kein rtb vorhanden -- Teilbaum 64 erledigt; ausgabe 69 69 beauftragt den rtb mit inorder 73 beauftragt den ltb mit inorder kein ltb vorhanden ausgabe 73 73 beauftragt den rtb mit inorder 77 beauftragt den ltb mit inorder kein ltb vorhanden ausgabe 77 77 beauftragt den rtb mit inorder kein rtb vorhanden -- Teilbaum 77 erledigt Teilbaum 73 erledigt Teilbaum 69 erledigt Teilbaum 57 erledigt Baum 42 erledigt Öffne die Seite http://btv.melezinek.cz/binary-search-tree.html. Erzeuge den Beispielbaum und führe die Simulation zum inorder-Durchlauf durch. Informatik 11 - 2. Die rekursive Datenstruktur Baum – 2.4 Durchlaufen von Bäumen
Preorder-Durchlauf (Merke: K L R) Besuche den Knoten k selbst. Beauftrage (rekursiv) den linken Teilbaum des Knotens k mit inorder-Durchlauf. Beauftrage (rekursiv) den rechten Teilbaum des Knotens k mit inorder-Durchlauf. Ergebnis des Preorder-Durchlaufs: 42 13 6 36 57 47 69 64 73 77 Führe die Simulation für den Beispielbaum durch. Dieser Durchlauf berücksichtigt die hierarchische Struktur. Man erkennt dies, wenn man die Elemente mit Einrückungen ausgibt: Informatik 11 - 2. Die rekursive Datenstruktur Baum – 2.4 Durchlaufen von Bäumen
Postorder-Durchlauf (Merke: L R K) Beauftrage (rekursiv) den linken Teilbaum des Knotens k mit inorder-Durchlauf. Beauftrage (rekursiv) den rechten Teilbaum des Knotens k mit inorder-Durchlauf. Besuche den Knoten k selbst. Ergebnis des Postorder-Durchlaufs: Führe die Simulation für den Beispielbaum durch. Informatik 11 - 2. Die rekursive Datenstruktur Baum – 2.4 Durchlaufen von Bäumen
Übung 1 – Methoden zum Baumdurchlauf (mit Kompositum) Ergänze im Wörterbuchbaum (mit Kompositum) die benötigten Methoden zum Baumdurchlauf. Die Überprüfung, ob ein linker oder rechter Teilbaum (Nachfolger) vorliegt, ist aufgrund des Kompositums nicht nötig. b) Ergänze im Wörterbuchbaum (mit Kompositum) die benötigten Methoden zur Ausgabe, welche die Struktur des Baumes berücksichtigt. Informatik 11 - 2. Die rekursive Datenstruktur Baum – 2.4 Durchlaufen von Bäumen
Übung 2 – Abituraufgaben (Zum Verständnis ist es jeweils sinnvoll, die Texte der vorangehenden Aufgaben durchzulesen.) 2011 II. Aufgaben 1 d - e 2012 I. Aufgaben 3 a - c 2013 II. Aufgabe 6 2014 I. Aufgabe 2 2017 I. Aufgabe 4 (enthält eine angeleitete Aufgabe zum Algorithmus „Knoten entfernen“) 2018 I. Aufgabe 2 Informatik 11 - 2. Die rekursive Datenstruktur Baum – 2.4 Durchlaufen von Bäumen