next up previous contents
Nächste Seite: Balancierte Binärbäume Aufwärts: Suchbäume Vorherige Seite: Suchbäume   Inhalt

Operationen auf Suchbäumen

Search(p,x)
Die Suche eines Schlüsselwerts $ x $ erfolgt durch den Funktionsaufruf $ Search(p,x) $, wobei $ p $ der Wurzelknoten ist1. Wir verfahren nach folgender Methode: Der Algorithmus $ Search(x,p) $ ist so formuliert, dass ein Knoten $ z $ zurückgegeben wird: Die Rückgabe des Knotens $ z $ wird für das Löschen bzw. Einfügen benötigt.
Insert(VAR p, x)
Um einen Schlüssel in einem Suchbaum einzufügen, suchen wir zunächst nach dem einzufügenden Schlüssel $ x $ im gegebenen Baum. Der nichtgefundene Schlüssel $ x $ wird dann an der erwartenden Position $ p $ unter den Blättern eingefügt. D.h. wir ersetzen das Blatt durch einen inneren Knoten mit dem einzufügenden Schlüssel $ x $ als Wert und zwei Blätter als Söhnen. So entsteht wieder ein Suchbaum. Abbildung 3 veranschaulicht dies.

Abbildung 3: Einfügen in einen Suchbaum
\begin{figure}
\epsfig{file=Folie3.eps,width=\linewidth}
\end{figure}

Delete(p,x)
Beim Löschen eines Schlüsselwerts $ x $, der als Markierung eines Knotens $ v $ gefunden wurde, sind drei Fälle zu unterscheiden:

Abbildung 4: Löschen von Knoten
\begin{figure}
\epsfig{file=Folie4.eps,width=\linewidth}
\end{figure}

Abbildung 5: Löschen von Knoten(2)
\begin{figure}
\epsfig{file=Folie5.eps,width=\linewidth}
\end{figure}

Im wesentlichen wird für alle drei Operationen der Suchbaum auf einem Pfad von der Wurzel bis zu einem Blatt durchlaufen. Damit ergeben sich folgende Kosten:
next up previous contents
Nächste Seite: Balancierte Binärbäume Aufwärts: Suchbäume Vorherige Seite: Suchbäume   Inhalt
Daniel Hottinger 2001-05-16