\documentclass{bschlangaul-aufgabe}
\bLadePakete{baum}
\begin{document}
\bAufgabenMetadaten{
  Titel = {Aufgabe 8},
  Thematik = {AVL 15,9,25,4,10,23,33,2,27; Einfüge 1,28; Löschen 15},
  Referenz = 66115-2012-H.T2-A8,
  RelativerPfad = Examen/66115/2012/09/Thema-2/Aufgabe-8.tex,
  ZitatSchluessel = examen:66115:2012:09,
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {AVL-Baum},
  EinzelpruefungsNr = 66115,
  Jahr = 2012,
  Monat = 09,
  ThemaNr = 2,
  AufgabeNr = 8,
}

Gegeben sei der folgende AVL-Baum $T$. Führen Sie auf $T$ folgende
Operationen durch.\index{AVL-Baum}
\footcite{examen:66115:2012:09}

% bschlangaul-werkzeug.java baum -a 15 9 25 4 10 23 33 2 27  -t -v
\begin{center}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=0]{15};
  [.\node[label=-1]{9};
    [.\node[label=-1]{4};
      [.\node[label=0]{2}; ]
      \edge[blank]; \node[blank]{};
    ]
    [.\node[label=0]{10}; ]
  ]
  [.\node[label=+1]{25};
    [.\node[label=0]{23}; ]
    [.\node[label=-1]{33};
      [.\node[label=0]{27}; ]
      \edge[blank]; \node[blank]{};
    ]
  ]
]
\end{tikzpicture}
\end{center}

\begin{bAntwort}
Wir führen alle Operationen am Ursprungsbaum $T$ durch und nicht am
veränderten Baum.
\end{bAntwort}

\begin{enumerate}
%%
% (a)
%%

\item Einfüge-Operationen:

\begin{enumerate}

%%
%
%%

\item Fügen Sie den Wert $1$ in $T$ ein. Balancieren Sie falls nötig und
geben Sie den entstandenen Baum (als Zeichnung) an.

% bschlangaul-werkzeug.java baum -a 15 9 25 4 10 23 33 2 27 1 -t -v

\begin{bAntwort}
\begin{bBaum}{Nach dem Einfügen von „1“}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=0]{15};
  [.\node[label=-2]{9};
    [.\node[label=-2]{4};
      [.\node[label=-1]{2};
        [.\node[label=0]{1}; ]
        \edge[blank]; \node[blank]{};
      ]
      \edge[blank]; \node[blank]{};
    ]
    [.\node[label=0]{10}; ]
  ]
  [.\node[label=+1]{25};
    [.\node[label=0]{23}; ]
    [.\node[label=-1]{33};
      [.\node[label=0]{27}; ]
      \edge[blank]; \node[blank]{};
    ]
  ]
]
\end{tikzpicture}
\end{bBaum}

\begin{bBaum}{Nach der Rechtsrotation}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=0]{15};
  [.\node[label=-1]{9};
    [.\node[label=0]{2};
      [.\node[label=0]{1}; ]
      [.\node[label=0]{4}; ]
    ]
    [.\node[label=0]{10}; ]
  ]
  [.\node[label=+1]{25};
    [.\node[label=0]{23}; ]
    [.\node[label=-1]{33};
      [.\node[label=0]{27}; ]
      \edge[blank]; \node[blank]{};
    ]
  ]
]
\end{tikzpicture}
\end{bBaum}
\end{bAntwort}

%%
%
%%

\item Fügen Sie nun den Wert $28$ in $T$ ein. Balancieren Sie falls
nötig und geben Sie den entstandenen Baum (als Zeichnung) an.

% bschlangaul-werkzeug.java baum -a 15 9 25 4 10 23 33 2 27 28 -t -v

\begin{bAntwort}
\begin{bBaum}{Nach dem Einfügen von „28“}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=0]{15};
  [.\node[label=-1]{9};
    [.\node[label=-1]{4};
      [.\node[label=0]{2}; ]
      \edge[blank]; \node[blank]{};
    ]
    [.\node[label=0]{10}; ]
  ]
  [.\node[label=+2]{25};
    [.\node[label=0]{23}; ]
    [.\node[label=-2]{33};
      [.\node[label=+1]{27};
        \edge[blank]; \node[blank]{};
        [.\node[label=0]{28}; ]
      ]
      \edge[blank]; \node[blank]{};
    ]
  ]
]
\end{tikzpicture}
\end{bBaum}

\begin{bBaum}{Nach der Linksrotation}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=0]{15};
  [.\node[label=-1]{9};
    [.\node[label=-1]{4};
      [.\node[label=0]{2}; ]
      \edge[blank]; \node[blank]{};
    ]
    [.\node[label=0]{10}; ]
  ]
  [.\node[label=+2]{25};
    [.\node[label=0]{23}; ]
    [.\node[label=-2]{33};
      [.\node[label=-1]{28};
        [.\node[label=0]{27}; ]
        \edge[blank]; \node[blank]{};
      ]
      \edge[blank]; \node[blank]{};
    ]
  ]
]
\end{tikzpicture}
\end{bBaum}

\begin{bBaum}{Nach der Rechtsrotation}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=0]{15};
  [.\node[label=-1]{9};
    [.\node[label=-1]{4};
      [.\node[label=0]{2}; ]
      \edge[blank]; \node[blank]{};
    ]
    [.\node[label=0]{10}; ]
  ]
  [.\node[label=+1]{25};
    [.\node[label=0]{23}; ]
    [.\node[label=0]{28};
      [.\node[label=0]{27}; ]
      [.\node[label=0]{33}; ]
    ]
  ]
]
\end{tikzpicture}
\end{bBaum}
\end{bAntwort}
\end{enumerate}

%%
% (b)
%%

\item Löschen Sie aus $T$ den Wert $15$. Balancieren Sie falls nötig und
geben Sie den entstandenen Baum (als Zeichnung) an.

% bschlangaul-werkzeug.java baum -a 15 9 25 4 10 23 33 2 27 lösche 15 -t -v

\begin{bAntwort}
\begin{bBaum}{Nach dem Löschen von „15“}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=0]{23};
  [.\node[label=-1]{9};
    [.\node[label=-1]{4};
      [.\node[label=0]{2}; ]
      \edge[blank]; \node[blank]{};
    ]
    [.\node[label=0]{10}; ]
  ]
  [.\node[label=+2]{25};
    \edge[blank]; \node[blank]{};
    [.\node[label=-1]{33};
      [.\node[label=0]{27}; ]
      \edge[blank]; \node[blank]{};
    ]
  ]
]
\end{tikzpicture}
\end{bBaum}

\begin{bBaum}{Nach der Rechtsrotation}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=0]{23};
  [.\node[label=-1]{9};
    [.\node[label=-1]{4};
      [.\node[label=0]{2}; ]
      \edge[blank]; \node[blank]{};
    ]
    [.\node[label=0]{10}; ]
  ]
  [.\node[label=+2]{25};
    \edge[blank]; \node[blank]{};
    [.\node[label=+1]{27};
      \edge[blank]; \node[blank]{};
      [.\node[label=0]{33}; ]
    ]
  ]
]
\end{tikzpicture}
\end{bBaum}

\begin{bBaum}{Nach der Linksrotation}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=-1]{23};
  [.\node[label=-1]{9};
    [.\node[label=-1]{4};
      [.\node[label=0]{2}; ]
      \edge[blank]; \node[blank]{};
    ]
    [.\node[label=0]{10}; ]
  ]
  [.\node[label=0]{27};
    [.\node[label=0]{25}; ]
    [.\node[label=0]{33}; ]
  ]
]
\end{tikzpicture}
\end{bBaum}
\end{bAntwort}

\end{enumerate}
\end{document}
