@@ -41,8 +41,8 @@ Wir notieren RBT über einen Datentyp $D$ analog zu BST und speichern lediglich
\end{align*}
Per Konvention nehmen wir an, dass der Wurzelknoten immer Schwarz ist.
Wenn der kürzeste vorstellbare Pfad von der Wurzel zu einem Blatt in einem RBT-Tree durch $l$ ausschließlich durch schwarze Knoten geht, ist der längste
Pfad dann durch $2l$ Knoten, immer einen Schwarzen und einen roten. Dadurch ist gewährleistet, dass das höchste Blatt
Wenn der kürzeste vorstellbare Pfad von der Wurzel zu einem Blatt in einem RBT-Tree durch $h'$ ausschließlich durch schwarze Knoten geht, ist der längste
Pfad dann durch $2h'$ Knoten, immer einen Schwarzen und einen roten. Dadurch ist gewährleistet, dass das höchste Blatt
maximal halb so hoch hängt wie eins auf der untersten Ebene.
Dadurch folgt:
...
...
@@ -52,6 +52,8 @@ Dadurch folgt:
\end{lemma}
Die Details des Beweises sind eine Übungsaufgabe.
Umgekehrt ist die Kapazität eines RBT zwischen $2^{h'}$ und $4^{h'}$.
\subsection{Einfügen in Red-Black-Trees}
Da RBT insbesondere Binäre Suchbäume sind, sind die Operationen zum Suchen von Elementen, dem Finden des Maximums,
...
...
@@ -152,8 +154,29 @@ kann:
\label{lemma:rbt_amortisiert}
\end{lemma}
\begin{proof}
Wir beobachten zuerst, dass sich bei einer Anwendung der Regel (3.5) die Kapazität des entsprechenden Teilbaums
verdoppelt: In jeder der vier Ausgangsfälle in Abbildung \ref{fig:rbt_balance} beträgt die Kapazität maximal
$4^{h'}$, wobei $h'$ hier die Anzahl der zu durchwandernden schwarzen Knoten auf den von der Wurzel dieses Teilbaums zu
einem Blatt beschreibt.
Nach der Umstrukturierung hat jedoch jeder Teilbaum mit der Wurzel $x$ bzw $z$ die maximale Kapazität $4^{h'}$, d.h.
der Teilbaum mit $y$ als Wurzel hat $24^{h'}$ Kapazität.
Dadurch ergeben sich beim Einfügen die in Abbildung \ref{fig:RBT_aufwand} skizzierten Schreibaufwände - eine Umstrukturierung
in der $i.$ Ebene ist doppelt so häufig wie in der Ebene $(i-1)$.
\end{proof}<++>
Akkumuliert man also über $k=2^l$ mal subsequent einfügen, ergeben sich eine folgende Anzahl von Schreiboperationen:
\[
2^l +2^{l-1}+2^{l-2}+\dots+2^0 ≤ 2^{l+1}=2*k,
\]
und damit amortisiert über $k$ Schritte $\mathcal{O}(1)$ Aufwand.