Bei der Datenstruktur Liste hatte jedes Element nur einen Nachfolger (das letzte Element gar keinen). Lässt man mehrere Nachfolger zu, so erhält man die Datenstruktur Baum.
Ein Baum
Baumstrukturen finden an vielen Stellen in der Informatik Verwendung, beispielsweise bei der Speicherung des Datenbestands von Datenbanken. Sie sorgen für effiziente Möglichkeiten zur Ablage und zum Abrufen von Daten.
Beispielbaum:
Oft stellt man den Baum so dar, dass die Kanten nach unten hin zu den Nachfolgerknoten zeigen. So spart man sich das Zeichen von Pfeilen.
Abgrenzung zur allgemeineren Datenstruktur Graph:
Ein Baum ist ein zusammenhängender zyklenfreier ungerichteter Graph.
Spezialfall Binärbaum:
Ein Binärbaum ist ein Baum, in dem jeder Knoten maximal zwei Nachfolger hat.
Verwendet man zur Implementierung eines Baumes das Entwurfsmuster Kompositum, so ergibt sich folgendes Klassendiagramm:
Sowohl die Wurzel, als auch innere Knoten und Blätter sind als Knoten angelegt. Die Klasse Abschluss kommt an den Stellen zum Einsatz, an denen es keine Nachfolger gibt. Die Ablage der Nachfolger kann beispielsweise über ein Array oder eine Liste geschehen. In vielen Anwendungsfällen ist die Speicherung in einem Array durchaus üblich (insbesondere da die Höchstzahl der Nachfolger häufig beschränkt wird).
Die Implementierung der Datenstruktur Baum in ihrer allgemeinen Form (d.h. Knoten haben beliebig viele Nachfolger) ohne weiteres Ordnungskriterium (s.u.) ist nicht prüfungsrelevant, daher gehen wir gleich zum Binärbaum über.
Ein Binärbaum ist ein Baum, bei dem jeder Knoten maximal zwei Nachfolger besitzt.
Das Klassendiagramm für die Implementierung eines Binärbaums unter Verwendung des Entwurfsmusters Kompositum ändert sich nur geringfügig:
Die Kardinalität 2 anstelle von 0..2 im Klassendiagramm trifft (aus technischer Sicht) daher zu, als bei fehlenden Nachfolgeknoten Abschlussobjekte ihren Platz einnehmen.
Oft legt man bei der Darstellung nur Wert auf die Baumstruktur selbst und zeichnet vereinfacht: