Zum Inhalt springen

Binärer Suchbaum

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 1. September 2003 um 22:57 Uhr durch Head (Diskussion | Beiträge) (en: pl:). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Ein binärer Suchbaum ist eine Datenstruktur. Es handelt sich um einen binären Baum mit der Eigenschaft, dass der linke Nachfolger eines Knotens einen kleineren Wert hat als der Knoten selbst, und der rechte Nachfolger einen größeren oder gleichen Wert.

Binäre Suchbäume sind in der Regel effizienter als lineare Datenstrukturen wie verkettete Listen, da man in ihnen schneller suchen und Elemente einfügen kann. Jedoch können sie zu einer verketteten Liste entarten; deshalb wurden verbesserte Varianten wie z.B. AVL-Bäume entwickelt.

Führt man bei einem binären Suchbaum einen InOrder-Durchlauf durch, so erhält man eine sortierte Liste der Einträge.


Suchen in binären Suchbäumen

Die Suche nach einem Eintrag verläuft derart, dass zunächst der Wert des Wurzelknotens mit dem Suchschlüssel verglichen wird.

Ist er gleich, so ist der Eintrag gefunden.

Andernfalls wird überprüft, ob der Suchschlüssel kleiner ist als der Knotenwert: dann wird die Suche rekursiv im linken Teilbaum der Wurzel fortgeführt; gibt es keinen linken Teilbaum, so existiert der gesuchte Eintrag im binären Baum nicht.

Ist er nicht kleiner, so wird entsprechend im rechten Teilbaum weitergesucht.

Bei vollständig gefüllten binären Suchbäumen ist die Suche in logarithmischer Laufzeit möglich (Aufwandsklasse O(log n)). Ist der Baum jedoch zu einer verketteten Liste entartet, so verschlechtert sich die Suche zu linearer Laufzeit (Aufwandsklasse O(n)).

Einfügen in binären Suchbäumen

Das Einfügen funktioniert nach dem gleichen Prinzip wie das Suchen.

Der Einfügealgorithmus beginnt bei der Wurzel; existiert diese nicht, d.h. ist der Baum leer, so wird das einzufügende Element als neue Wurzel gespeichert.

Andernfalls wird das einzufügende Element rekursiv entweder in den linken oder rechten Teilbaum der Wurzel eingefügt, je nachdem, ob sein Schlüssel kleiner als der Wert der Wurzel ist.

Die Komplexität entspricht der der Suchoperation.

Löschen in binären Suchbäumen

...