Informatik

Binärbaum: Aufbau, Traversierung und Suchbaum

Binärbaum: Aufbau, Traversierung und Suchbaum
Binärbaum: Aufbau, Traversierung und Suchbaum
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Ein Binärbaum ordnet Daten hierarchisch: Jeder Knoten hat höchstens ein linkes und ein rechtes Kind. Diese Struktur allein sagt noch nichts über die Reihenfolge der gespeicherten Werte aus. Erst ein binärer Suchbaum ergänzt eine Ordnungsregel.

Auf dieser Seite lernst du, einen Binärbaum zu beschreiben, seine Höhe eindeutig anzugeben, Knoten in verschiedenen Reihenfolgen zu durchlaufen und ihn von einem binären Suchbaum zu unterscheiden.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Woran erkennst du einen Binärbaum?

Stell dir eine Ordnerstruktur vor, in der jeder Eintrag höchstens zwei direkte Untereinträge haben darf. Genau diese Begrenzung ist die Kernidee eines Binärbaums. „Binär“ bedeutet hier also höchstens zwei Kinder pro Knoten — nicht „genau zwei“.

Definition

Binärbaum

Ein Binärbaum ist entweder leer oder besteht aus einer Wurzel, einem linken Teilbaum und einem rechten Teilbaum. Beide Teilbäume sind wiederum Binärbäume. Linkes und rechtes Kind werden unterschieden.

Die wichtigsten Bauteile sind:

  • Die Wurzel ist der oberste Einstiegspunkt. Sie hat keinen Elternknoten.
  • Ein Knoten speichert einen Wert oder andere Informationen.
  • Eine Kante verbindet einen Elternknoten mit einem Kind.
  • Ein Blatt ist ein Knoten ohne Kinder.
  • Ein innerer Knoten besitzt mindestens ein Kind.
  • Ein Teilbaum besteht aus einem Knoten und allen darunterliegenden Knoten.

Ein einzelner Wurzelknoten ist bereits ein Binärbaum. Er ist zugleich Wurzel und Blatt. Auch ein Knoten mit nur einem Kind ist erlaubt.

Beispiel

Betrachte diesen Baum: Die Wurzel ist 20. Ihre Kinder sind links 10 und rechts 30. 10 hat die Kinder 5 und 15; 30 hat die Kinder 25 und 35.

Der Baum besitzt 7 Knoten und 6 Kanten. Die Blätter sind 5, 15, 25 und 35. Der Teilbaum mit der Wurzel 10 enthält die Knoten 10, 5 und 15.

Teste dich
Frage 1 von 1LeichtWelche Aussage gilt für jeden Binärbaum?
Lösung: Jeder Knoten hat höchstens zwei Kinder. — Die Begrenzung auf höchstens zwei unterscheidbare Kinder definiert den Binärbaum. Eine Werteordnung gehört erst zum binären Suchbaum.
Wie misst du Tiefe, Höhe und Größe?

Die Größe ist einfach die Anzahl aller Knoten. Bei Tiefe und Höhe musst du genauer hinsehen, weil Lehrwerke die Höhe unterschiedlich zählen.

Definition

Tiefe

Die Tiefe eines Knotens ist die Anzahl der Kanten auf dem Weg von der Wurzel zu diesem Knoten. Die Wurzel hat daher Tiefe 0.

Wenn du die Höhe als Kantenanzahl misst, ist die Höhe eines Knotens die Länge seines längsten Weges hinunter zu einem Blatt. Die Baumhöhe ist dann die Höhe der Wurzel und zugleich die größte Knotentiefe.

Beim Beispielbaum liegt die Wurzel in Tiefe 0, 10 und 30 liegen in Tiefe 1, die vier Blätter in Tiefe 2. Die Baumhöhe beträgt bei der Kantenzählung also 2.

Manche Darstellungen zählen stattdessen die Ebenen. Dann hat derselbe Baum 3 Ebenen und damit Ebenenhöhe 3. Schreibe deshalb immer dazu, welche Konvention du verwendest.

Merke

Kantenzählung: Ein Einzelknotenbaum hat Höhe 0. Ebenenzählung: Derselbe Baum hat Höhe 1. Beide Angaben können korrekt sein, wenn die Konvention genannt ist.

Für einen im engen Sinn vollständigen Binärbaum sind alle Ebenen voll besetzt und alle Blätter gleich tief. Hat er bei Ebenenzählung die Höhe $h$, dann gilt:

$$n=2^h-1$$

Beispiel

Bei 3 Ebenen enthält der Baum $2^3-1=7$ Knoten. Das passt zum Beispielbaum: 1 Knoten auf der ersten, 2 auf der zweiten und 4 auf der dritten Ebene.

Lückentext

Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.

Im Beispielbaum hat die Wurzel die Tiefe . Das Blatt 25 hat die Tiefe . Bei Kantenzählung beträgt die Baumhöhe ; bei Ebenenzählung beträgt sie .

Lösungen: Lücke 1: 0; Lücke 2: 2; Lücke 3: 2; Lücke 4: 3. Tiefe zählt Kanten ab der Wurzel. Der längste Wurzel-Blatt-Weg hat zwei Kanten, umfasst aber drei Ebenen.
Wie besuchst du alle Knoten?

Eine Traversierung besucht jeden Knoten systematisch genau einmal. Bei den drei Tiefensuchen bleibt die Reihenfolge der Teilbäume gleich: links vor rechts. Nur der Zeitpunkt, an dem der aktuelle Knoten verarbeitet wird, ändert sich.

VerfahrenKurzregelReihenfolge im Beispiel
PreorderKnoten – links – rechts20, 10, 5, 15, 30, 25, 35
Inorderlinks – Knoten – rechts5, 10, 15, 20, 25, 30, 35
Postorderlinks – rechts – Knoten5, 15, 10, 25, 35, 30, 20
Level-orderEbene für Ebene, links nach rechts20, 10, 30, 5, 15, 25, 35
Beispiel

So entsteht die Inorder-Folge des Beispielbaums:

  1. Durchlaufe zuerst den linken Teilbaum von 20: 5, 10, 15.
  2. Verarbeite die Wurzel 20.
  3. Durchlaufe danach den rechten Teilbaum: 25, 30, 35.

Zusammen ergibt das 5, 10, 15, 20, 25, 30, 35.

Merke

N steht für den aktuellen Knoten, L für den linken und R für den rechten Teilbaum: Preorder ist N–L–R, Inorder L–N–R und Postorder L–R–N.

Teste dich
Frage 1 von 2MittelEin Baum hat die Wurzel A, links das Blatt B und rechts das Blatt C. Welche Folge ist die Postorder?
Lösung: B, C, A — Bei Postorder kommen zuerst linker und rechter Teilbaum. Die Wurzel wird zuletzt verarbeitet: L–R–N.
Frage 2 von 2MittelWarum ist die Inorder-Folge des Beispielbaums aufsteigend?
Lösung: Weil der Beispielbaum zusätzlich die Suchbaumordnung erfüllt. — Die Traversierung legt nur die Besuchsreihenfolge fest. Sortiert ist Inorder nur dann, wenn links kleinere und rechts größere Schlüssel stehen.
Wann wird daraus ein binärer Suchbaum?

Ein allgemeiner Binärbaum begrenzt nur die Kinderzahl. Ein binärer Suchbaum ordnet zusätzlich seine Schlüssel.

Definition

Binärer Suchbaum

Für jeden Knoten gilt: Alle Schlüssel im linken Teilbaum sind kleiner als der Schlüssel des Knotens, alle Schlüssel im rechten Teilbaum sind größer. Diese Regel gilt rekursiv in jedem Teilbaum.

Wie gleiche Schlüssel behandelt werden, muss eine Implementierung eigens festlegen: Sie kann Duplikate ablehnen oder sie nach einer konsistenten Regel einer Seite zuordnen. Für die folgenden Beispiele kommen keine Duplikate vor.

Suchen

Suche im Beispielbaum nach 25:

  1. Vergleiche mit 20. Weil 25 > 20, gehe nach rechts.
  2. Vergleiche mit 30. Weil 25 < 30, gehe nach links.
  3. Dort findest du 25.

Du musst nicht beide Teilbäume durchsuchen. Die Ordnungsregel entscheidet bei jedem Vergleich, auf welcher Seite die Suche weitergeht.

Einfügen

Füge 27 ein:

  1. 27 > 20: gehe rechts zu 30.
  2. 27 < 30: gehe links zu 25.
  3. 27 > 25: Der rechte Kindverweis von 25 ist frei.
  4. Erzeuge dort den neuen Knoten 27.

Der neue Knoten ist zunächst ein Blatt. Die Suchbaumordnung bleibt erhalten.

Warum die Höhe wichtig ist

Suchen und Einfügen folgen jeweils einem Weg von der Wurzel nach unten. Ihr Aufwand hängt deshalb von der Höhe $h$ ab und beträgt $O(h)$.

Ein ausgeglichener Baum kann bei vielen Knoten eine logarithmische Höhe haben. Werden Schlüssel dagegen einseitig eingefügt, kann der Baum zu einer listenartigen Kette entarten. Dann wächst die Höhe mit der Knotenzahl, und der Suchvorteil geht im schlechtesten Fall verloren.

Gut zu wissen

Eine verkettete lineare Liste besitzt pro Element typischerweise einen Verweis zum nächsten Element. Ein Binärbaumknoten benötigt Verweise auf linkes und rechtes Kind. Dafür kann die Suchbaumordnung bei günstiger Höhe viele Elemente überspringen, während eine unsortierte Liste im schlechtesten Fall Element für Element geprüft wird.

Teste dich
Frage 1 von 2MittelWo wird 28 in den ursprünglichen Beispielbaum eingefügt?
Lösung: Als rechtes Kind von 25. — Die Vergleiche liefern den Weg 20 rechts, 30 links, 25 rechts. Dort ist der freie Verweis.
Frage 2 von 2SchwerZwei Suchbäume speichern dieselben Schlüssel. Einer ist ausgeglichen, der andere eine einseitige Kette. Welche Aussage trifft zu?
Lösung: Im ausgeglichenen Baum sind Suchwege gewöhnlich kürzer. — Die Einfügereihenfolge kann unterschiedliche Formen erzeugen. Die Höhe bestimmt die maximale Länge eines Suchwegs.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • Binärbaum
    • Struktur: Wurzel, Knoten, Kanten, Teilbäume und Blätter
    • Begrenzung: höchstens zwei unterscheidbare Kinder
    • Maße: Größe, Tiefe und Höhe
    • Traversierung: Preorder, Inorder, Postorder und Level-order
    • Suchbaum: zusätzliche Schlüsselordnung
    • Laufzeit: Suchweg hängt von der Höhe ab
Abschluss-Check
Teste dich
Frage 1 von 3LeichtWas unterscheidet einen binären Suchbaum von einem allgemeinen Binärbaum?
Lösung: Die zusätzliche Ordnung der Schlüssel in linkem und rechtem Teilbaum. — Der Binärbaum legt die Struktur fest. Der Suchbaum ergänzt eine rekursiv geltende Ordnungsregel für vergleichbare Schlüssel.
Frage 2 von 3MittelDer Beispielbaum wird in Preorder durchlaufen. Welcher Knoten kommt direkt nach 15?
Lösung: 30 — Die Folge lautet 20, 10, 5, 15, 30, 25, 35. Nach dem linken Teilbaum beginnt der rechte bei 30.
Frage 3 von 3SchwerEin Suchbaum liefert per Inorder keine aufsteigende Folge. Welche Diagnose passt am besten?
Lösung: Mindestens eine Schlüsselposition verletzt die Suchbaumordnung. — Inorder besucht links, Knoten, rechts. Eine aufsteigende Folge entsteht nur, wenn die Suchbaumordnung an jedem Knoten gilt.

Passend dazu