Informatik · Klasse 11–12 · aktualisiert
Binärbaum: Aufbau, Traversierung und Suchbaum
Du lernst Wurzel, Blatt und Teilbaum kennen, ermittelst Tiefe und Höhe, durchläufst Bäume in vier Reihenfolgen und nutzt die Suchbaumordnung.
0 von 13 Aufgaben gelöst
Kurz gesagt
Ein Binärbaum besteht aus Knoten und Kanten, jeder Knoten hat höchstens zwei Kinder. Tiefe, Höhe und vier Durchlaufreihenfolgen beschreiben ihn. Im Suchbaum stehen links nur kleinere (oder gleiche), rechts nur größere (oder gleiche) Schlüssel; so folgt die Suche einem Weg ab der Wurzel.
Stell dir vor, du suchst eine Zahl in einer großen Sammlung. Du willst nicht jede Zahl ansehen. Ein Binärbaum ordnet die Daten so, dass du nur einem Weg von oben nach unten folgst. Dafür brauchst du die Sprache der Bäume, und die lernst du hier.
Deine Lernziele
Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.
4 Abschnitte
Ein Baum besteht aus Knoten und Kanten. Eine Kante verbindet zwei Knoten und zeigt, dass zwischen ihnen eine Beziehung besteht. Ein Knoten kann einen Namen tragen, den Schlüssel.
Die Wurzel ist der einzige Knoten, in den keine Kante hineinführt. Jeder andere Knoten hängt durch genau eine eingehende Kante an einem anderen Knoten. Dieser Knoten ist sein Elternteil, der hängende Knoten ist sein Kind. Hat ein Knoten keine Kinder, heißt er Blatt. In Zeichnungen steht die Wurzel meist oben und die Blätter stehen unten.
Im Binärbaum hat jeder Knoten höchstens zwei Kinder. Meist verlangt man, dass sich die Kinder eindeutig in ein linkes und ein rechtes Kind einteilen lassen.
Ein Teilbaum besteht aus einem Knoten und allen seinen Nachkommen und ist selbst ein Baum. Die Kinder eines Knotens sind die Wurzeln von Teilbäumen.
Beispiel: Die Schlüssel 50, 30, 20, 70, 40, 80, 60 werden in dieser Reihenfolge in einen leeren Suchbaum eingefügt. 50 ist die Wurzel. 30 ist das linke und 70 das rechte Kind von 50. 20 ist das linke und 40 das rechte Kind von 30. 60 ist das linke und 80 das rechte Kind von 70. Die Blätter sind 20, 40, 60 und 80. Der Teilbaum mit der Wurzel 30 besteht aus 30, 20 und 40.
Definition
Blatt
Ein Blatt ist ein Knoten ohne Kinder. Die Wurzel ist dagegen der einzige Knoten, in den keine Kante hineinführt.
| Knoten | Linkes Kind | Rechtes Kind |
|---|---|---|
| 50 | 30 | 70 |
| 30 | 20 | 40 |
| 70 | 60 | 80 |
| 20, 40, 60, 80 | keins | keins |
Teste dich
Die Tiefe eines Knotens ist die Zahl der Kanten bis zur Wurzel. Die Wurzel hat die Tiefe 0. Knoten mit gleicher Tiefe bilden eine Ebene (ein Niveau). Tiefe ist eine Eigenschaft eines Knotens, Höhe eine des ganzen Baums.
Für die Höhe gibt es zwei Zählweisen. In Zählweise A ist die Höhe die größte vorkommende Tiefe eines Knotens. In Zählweise B setzt man die Höhe um eins höher. Dann hat der leere Baum die Höhe 0 und der Baum nur aus der Wurzel die Höhe 1. Die Höhe ist dann die Maximalzahl der Knotenebenen. Lies deshalb in einer Aufgabe zuerst, welche Zählweise gilt.
Beispiel: Die Schlüssel 5, 2, 8, 1, 4, 6, 9, 0, 3, 7 werden in dieser Reihenfolge in einen leeren Suchbaum eingefügt. Die Tabelle zeigt die Tiefen. Die größte Tiefe ist 3, also ist die Höhe in Zählweise A gleich 3. Der Baum hat 4 Ebenen, also ist die Höhe in Zählweise B gleich 4.
Definition
Tiefe
Die Tiefe eines Knotens ist die Zahl der Kanten, die er von der Wurzel entfernt ist. Die Wurzel hat die Tiefe 0.
| Tiefe (Ebene) | Knoten |
|---|---|
| 0 | 5 |
| 1 | 2, 8 |
| 2 | 1, 4, 6, 9 |
| 3 | 0, 3, 7 |
Merke: Zählweise A: Höhe = größte Tiefe. Zählweise B: Höhe = Zahl der Ebenen, also um eins höher.
Teste dich
Traversieren heißt, die Knoten eines Baums systematisch in einer bestimmten Reihenfolge zu untersuchen. Üblich ist, den linken Teilbaum vor dem rechten zu durchlaufen. Die Regeln gelten rekursiv: In jedem Teilbaum gilt wieder dieselbe Regel.
Preorder (Knoten, links, rechts): Erst kommt der Knoten, dann der linke und dann der rechte Teilbaum. Inorder (links, Knoten, rechts): Erst der linke Teilbaum, dann der Knoten, dann der rechte Teilbaum. Postorder (links, rechts, Knoten): Erst der linke, dann der rechte Teilbaum, zuletzt der Knoten.
Bei der Level-order beginnst du an der Wurzel und durchläufst die Ebenen von links nach rechts.
Bei einem binären Suchbaum entspricht die Inorder-Reihenfolge der Anordnung der Schlüssel. Du bekommst sie also sortiert.
Definition
Traversierung
Eine Traversierung untersucht die Knoten eines Baums systematisch in einer bestimmten Reihenfolge.
Beispiel: Vier Durchläufe desselben Baums
- 1Baum: 5 hat die Kinder 2 (links) und 8 (rechts). 2 hat die Kinder 1 (links) und 4 (rechts). 8 hat die Kinder 6 (links) und 9 (rechts).
- 21 hat links die 0. 4 hat links die 3. 6 hat rechts die 7. Alle anderen Knoten haben keine Kinder.
- 3Preorder (Knoten, links, rechts): 5 2 1 0 4 3 8 6 7 9
- 4Inorder (links, Knoten, rechts): 0 1 2 3 4 5 6 7 8 9
- 5Postorder (links, rechts, Knoten): 0 1 3 4 2 7 6 9 8 5
- 6Level-order (Ebene für Ebene): 5 2 8 1 4 6 9 0 3 7
Merke: Der Name sagt, wann der Knoten dran ist: bei Preorder vor seinen Teilbäumen, bei Inorder zwischen ihnen, bei Postorder nach ihnen.
Teste dich
Ein binärer Suchbaum ist ein Binärbaum, dessen Knoten Schlüssel tragen. Die Schlüssel des linken Teilbaums eines Knotens sind nur kleiner (oder gleich), die des rechten Teilbaums nur größer (oder gleich) als der Schlüssel des Knotens selbst. In unseren Beispielen kommen keine doppelten Schlüssel vor.
So suchst du: Vergleiche den Suchschlüssel zuerst mit dem Schlüssel der Wurzel. Sind beide gleich, ist der Eintrag gefunden. Ist der Suchschlüssel kleiner, geht die Suche im linken Teilbaum weiter, ist er größer, im rechten. Fehlt dieser Teilbaum, gibt es den Eintrag nicht im Baum.
Die Suche folgt einem Weg ab der Wurzel, höchstens bis zu einem Blatt. Ihre Zeit hängt im Mittel und im schlechtesten Fall linear von der Höhe des Baums ab.
Beim Einfügen orientierst du dich an der Suche. Du vergleichst den neuen Schlüssel mit der Wurzel. Ist er größer, schaust du, ob die Wurzel ein rechtes Kind hat. Wenn nicht, hängst du ihn dort an. Sonst gehst du zu diesem Kind und wiederholst das. Bei einem kleineren Schlüssel gehst du entsprechend nach links. Der letzte Knoten einer erfolglosen Suche bildet zusammen mit der letzten Vergleichsrichtung den Einfügepunkt. Nach dem Einfügen ist das neue Element ein Blatt.
Fügt man aufsteigend (oder absteigend) sortierte Schlüssel nacheinander ein, kann der Baum entarten: Er wird zu einer linearen Liste, also zu einer Kette. Bei 1, 2, 3, 4, 5 wird jeder neue Schlüssel rechtes Kind des vorherigen. Hat im entarteten Baum jeder Knoten nur ein Kind, kommt die Suche einer sequentiellen Suche gleich. Dabei muss man den Suchschlüssel unter Umständen mit allen Schlüsseln vergleichen. Höhen-balancierte Suchbäume ermöglichen die Suche in garantiert logarithmischer Laufzeit.
Definition
Binärer Suchbaum
Ein binärer Suchbaum ist ein Binärbaum mit Schlüsseln. Links stehen nur kleinere (oder gleiche), rechts nur größere (oder gleiche) Schlüssel als im Knoten selbst.
Merke: Jeder Vergleich sagt dir, in welchen Teilbaum du weitergehst. Das Einfügen nutzt denselben Weg wie die Suche und endet mit einem neuen Blatt.
Teste dich
Alles auf einen Blick
Binärbaum
Aufbau
Im Binärbaum hat jeder Knoten höchstens zwei Kinder, die Wurzel ist der einzige Knoten ohne eingehende Kante.
Tiefe
Zahl der Kanten bis zur Wurzel, die Wurzel hat Tiefe 0.
Höhe
Zählweise A ist die größte Tiefe, Zählweise B ist um eins höher. Achte auf die angegebene Zählweise.
Traversierung
Preorder Knoten, links, rechts; Inorder links, Knoten, rechts; Postorder links, rechts, Knoten; Level-order Ebene für Ebene.
Suchbaum
Links nur kleinere (oder gleiche), rechts nur größere (oder gleiche) Schlüssel. Inorder liefert die sortierte Reihenfolge.
Entartung
Aufsteigend sortiert eingefügte Schlüssel können den Baum zur Liste entarten lassen.
Musteraufgabe · Schritt für Schritt
Höhe und Durchläufe eines Suchbaums mit den Schlüsseln 40, 20, 60, 10, 30, 50, 35
- 1Einfügen: 40 wird Wurzel. 20 ist kleiner als 40: linkes Kind von 40. 60 ist größer: rechtes Kind von 40.
- 210 ist kleiner als 40 und kleiner als 20: linkes Kind von 20. 30 ist kleiner als 40, aber größer als 20: rechtes Kind von 20.
- 350 ist größer als 40 und kleiner als 60: linkes Kind von 60. 35 ist kleiner als 40, größer als 20 und größer als 30: rechtes Kind von 30.
- 4Tiefen: 40 hat Tiefe 0. 20 und 60 haben Tiefe 1. 10, 30 und 50 haben Tiefe 2. 35 hat Tiefe 3.
- 5Höhe in Zählweise A: 3. Höhe in Zählweise B (Ebenen zählen): 4.
- 6Preorder (Knoten, links, rechts): 40 20 10 30 35 60 50
- 7Inorder (links, Knoten, rechts): 10 20 30 35 40 50 60, also aufsteigend sortiert
- 8Postorder (links, rechts, Knoten): 10 35 30 20 50 60 40
- 9Level-order (Ebene für Ebene): 40 20 60 10 30 50 35
Fehler finden
Prüfe die Aussagen zum Einfügen von 1, 2, 3, 4, 5 In einer Zeile steckt ein Fehler. Tippe sie an.
Fehler in Zeile 4Die Höhe in Zählweise A ist die größte Tiefe und nicht die Zahl der Knoten oder Ebenen. Richtig: Die größte Tiefe ist 4, also ist die Höhe in Zählweise A gleich 4. Die 5 ergibt erst Zählweise B.
Lückentext
Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.
Die Wurzel hat die Tiefe . Die Inorder-Reihenfolge liefert bei einem Suchbaum die Schlüssel . Nach dem Einfügen ist der neue Schlüssel ein .
Karteikasten
Erst selbst überlegen, dann umdrehen.
Übung mit Feedback