\documentclass{bschlangaul-aufgabe}
\bLadePakete{baum,spalten}
\begin{document}
\bAufgabenMetadaten{
  Titel = {Aufgabe 3},
  Thematik = {Einfügen und dreimal einen Knoten löschen},
  Referenz = 66115-2014-F.T1-A3,
  RelativerPfad = Examen/66115/2014/03/Thema-1/Aufgabe-3.tex,
  ZitatSchluessel = examen:66115:2014:03,
  BearbeitungsStand = mit Lösung,
  Korrektheit = korrekt und überprüft,
  Ueberprueft = {Mit dem Online-Tool Visualgo auf \url{https://visualgo.net/en/bst}},
  Stichwoerter = {AVL-Baum},
  EinzelpruefungsNr = 66115,
  Jahr = 2014,
  Monat = 03,
  ThemaNr = 1,
  AufgabeNr = 3,
}

\begin{enumerate}

%%
% a)
%%

\item Fügen Sie die Zahlen (7, 6, 2, 1, 5, 3, 8, 4) in dieser
Reihenfolge in einen anfangs leeren AVL Baum ein. Stellen Sie die AVL
Eigenschaft ggf. nach jedem Einfügen mit geeigneten Rotationen wieder
her. Zeichnen Sie den AVL Baum einmal vor und einmal nach jeder
einzelnen Rotation.\index{AVL-Baum}
\footcite{examen:66115:2014:03}

\begin{bProjektSprache}{Baum}
baum avl (
  setze: 7 6 2 1 5 3 8 4;
  drucke;
)
\end{bProjektSprache}

% https://visualgo.net/en/bst
% 7, 6, 2, 1, 5, 3, 8, 4

\begin{bAntwort}
\begin{multicols}{2}

\begin{bBaum}{Nach dem Einfügen von „7“}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=0]{7}; ]
\end{tikzpicture}
\end{bBaum}

\begin{bBaum}{Nach dem Einfügen von „6“}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=-1]{7};
  [.\node[label=0]{6}; ]
  \edge[blank]; \node[blank]{};
]
\end{tikzpicture}
\end{bBaum}

\begin{bBaum}{Nach dem Einfügen von „2“}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=-2]{7};
  [.\node[label=-1]{6};
    [.\node[label=0]{2}; ]
    \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]{6};
  [.\node[label=0]{2}; ]
  [.\node[label=0]{7}; ]
]
\end{tikzpicture}
\end{bBaum}

\begin{bBaum}{Nach dem Einfügen von „1“}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=-1]{6};
  [.\node[label=-1]{2};
    [.\node[label=0]{1}; ]
    \edge[blank]; \node[blank]{};
  ]
  [.\node[label=0]{7}; ]
]
\end{tikzpicture}
\end{bBaum}
\end{multicols}

\bLinie

\begin{multicols}{2}

\begin{bBaum}{Nach dem Einfügen von „5“}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=-1]{6};
  [.\node[label=0]{2};
    [.\node[label=0]{1}; ]
    [.\node[label=0]{5}; ]
  ]
  [.\node[label=0]{7}; ]
]
\end{tikzpicture}
\end{bBaum}

\begin{bBaum}{Nach dem Einfügen von „3“}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=-2]{6};
  [.\node[label=+1]{2};
    [.\node[label=0]{1}; ]
    [.\node[label=-1]{5};
      [.\node[label=0]{3}; ]
      \edge[blank]; \node[blank]{};
    ]
  ]
  [.\node[label=0]{7}; ]
]
\end{tikzpicture}
\end{bBaum}

\begin{bBaum}{Nach der Linksrotation}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=-2]{6};
  [.\node[label=-2]{5};
    [.\node[label=0]{2};
      [.\node[label=0]{1}; ]
      [.\node[label=0]{3}; ]
    ]
    \edge[blank]; \node[blank]{};
  ]
  [.\node[label=0]{7}; ]
]
\end{tikzpicture}
\end{bBaum}

\begin{bBaum}{Nach der Rechtsrotation}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=0]{5};
  [.\node[label=0]{2};
    [.\node[label=0]{1}; ]
    [.\node[label=0]{3}; ]
  ]
  [.\node[label=+1]{6};
    \edge[blank]; \node[blank]{};
    [.\node[label=0]{7}; ]
  ]
]
\end{tikzpicture}
\end{bBaum}
\end{multicols}

\bLinie

\begin{bBaum}{Nach dem Einfügen von „8“}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=+1]{5};
  [.\node[label=0]{2};
    [.\node[label=0]{1}; ]
    [.\node[label=0]{3}; ]
  ]
  [.\node[label=+2]{6};
    \edge[blank]; \node[blank]{};
    [.\node[label=+1]{7};
      \edge[blank]; \node[blank]{};
      [.\node[label=0]{8}; ]
    ]
  ]
]
\end{tikzpicture}
\end{bBaum}

\begin{bBaum}{Nach der Linksrotation}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=0]{5};
  [.\node[label=0]{2};
    [.\node[label=0]{1}; ]
    [.\node[label=0]{3}; ]
  ]
  [.\node[label=0]{7};
    [.\node[label=0]{6}; ]
    [.\node[label=0]{8}; ]
  ]
]
\end{tikzpicture}
\end{bBaum}

\begin{bBaum}{Nach dem Einfügen von „4“}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=-1]{5};
  [.\node[label=+1]{2};
    [.\node[label=0]{1}; ]
    [.\node[label=+1]{3};
      \edge[blank]; \node[blank]{};
      [.\node[label=0]{4}; ]
    ]
  ]
  [.\node[label=0]{7};
    [.\node[label=0]{6}; ]
    [.\node[label=0]{8}; ]
  ]
]
\end{tikzpicture}
\end{bBaum}
\end{bAntwort}

%%
% b)
%%

\item Entfernen Sie den jeweils markierten Knoten aus den folgenden
AVL-Bäumen. Stellen Sie die AVL-Eigenschaft ggf. durch geeignete
Rotationen wieder her. Zeichnen Sie nur den resultierenden Baum.

\begin{enumerate}

%%
% i)
%%

\item Baum 1:

\begin{bProjektSprache}{Baum}
baum avl (
  setze: 5 2 10 1 3 8 12 4 6 9 11 13 7 14;
  drucke;
)
\end{bProjektSprache}

\begin{center}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=+1]{5};
  [.\node[label=+1]{2};
    [.\node[label=0]{1}; ]
    [.\node[label=+1]{3};
      \edge[blank]; \node[blank]{};
      [.\node[label=0,very thick]{4}; ]
    ]
  ]
  [.\node[label=0]{10};
    [.\node[label=-1]{8};
      [.\node[label=+1]{6};
        \edge[blank]; \node[blank]{};
        [.\node[label=0]{7}; ]
      ]
      [.\node[label=0]{9}; ]
    ]
    [.\node[label=+1]{12};
      [.\node[label=0]{11}; ]
      [.\node[label=+1]{13};
        \edge[blank]; \node[blank]{};
        [.\node[label=0]{14}; ]
      ]
    ]
  ]
]
\end{tikzpicture}
\end{center}

% liefert falsches Ergebnis: bschlangaul-werkzeug.java baum --avl 5 2 10 1 3 8 12 4 6 9 11 13 7 14 lösche 4 -v

% https://visualgo.net/en/bst
% 5, 2, 10, 1, 3, 8, 12, 4, 6, 9, 11, 13, 7, 14

\begin{bAntwort}
\begin{bBaum}{Nach dem Löschen von „4“}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=-1]{10};
  [.\node[label=+1]{5};
    [.\node[label=0]{2};
      [.\node[label=0]{1}; ]
      [.\node[label=0]{3}; ]
    ]
    [.\node[label=-1]{8};
      [.\node[label=+1]{6};
        \edge[blank]; \node[blank]{};
        [.\node[label=0]{7}; ]
      ]
      [.\node[label=0]{9}; ]
    ]
  ]
  [.\node[label=+1]{12};
    [.\node[label=0]{11}; ]
    [.\node[label=+1]{13};
      \edge[blank]; \node[blank]{};
      [.\node[label=0]{14}; ]
    ]
  ]
]
\end{tikzpicture}
\end{bBaum}
\end{bAntwort}

%%
% ii)
%%

\item Baum 2:

\begin{bProjektSprache}{Baum}
baum avl (
  setze: 6 2 8 1 4 7 3 5;
  drucke;
)
\end{bProjektSprache}

\begin{center}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=-1]{6};
  [.\node[label=+1]{2};
    [.\node[label=0]{1}; ]
    [.\node[label=0]{4};
      [.\node[label=0]{3}; ]
      [.\node[label=0]{5}; ]
    ]
  ]
  [.\node[label=-1]{8};
    [.\node[label=0,very thick]{7}; ]
    \edge[blank]; \node[blank]{};
  ]
]
\end{tikzpicture}
\end{center}

% https://visualgo.net/en/bst
% 6, 2, 8, 1, 4, 7, 3, 5

\begin{bAntwort}
\begin{bBaum}{Nach dem Löschen von „7“}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=-2]{6};
  [.\node[label=+1]{2};
    [.\node[label=0]{1}; ]
    [.\node[label=0]{4};
      [.\node[label=0]{3}; ]
      [.\node[label=0]{5}; ]
    ]
  ]
  [.\node[label=0]{8}; ]
]
\end{tikzpicture}
\end{bBaum}

\begin{bBaum}{Nach der Linksrotation}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=-2]{6};
  [.\node[label=-1]{4};
    [.\node[label=0]{2};
      [.\node[label=0]{1}; ]
      [.\node[label=0]{3}; ]
    ]
    [.\node[label=0]{5}; ]
  ]
  [.\node[label=0]{8}; ]
]
\end{tikzpicture}
\end{bBaum}

\begin{bBaum}{Nach der Rechtsrotation}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=0]{4};
  [.\node[label=0]{2};
    [.\node[label=0]{1}; ]
    [.\node[label=0]{3}; ]
  ]
  [.\node[label=0]{6};
    [.\node[label=0]{5}; ]
    [.\node[label=0]{8}; ]
  ]
]
\end{tikzpicture}
\end{bBaum}
\end{bAntwort}

%%
% ii)
%%

\item Baum 3:

\begin{bProjektSprache}{Baum}[bii]
baum avl (
  setze: 10 5 12 2 8 11 13 1 4 6 9 14 3 7;
  drucke;
)
\end{bProjektSprache}

\begin{center}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=-1]{10};
  [.\node[label=0,very thick]{5};
    [.\node[label=+1]{2};
      [.\node[label=0]{1}; ]
      [.\node[label=-1]{4};
        [.\node[label=0]{3}; ]
        \edge[blank]; \node[blank]{};
      ]
    ]
    [.\node[label=-1]{8};
      [.\node[label=+1]{6};
        \edge[blank]; \node[blank]{};
        [.\node[label=0]{7}; ]
      ]
      [.\node[label=0]{9}; ]
    ]
  ]
  [.\node[label=+1]{12};
    [.\node[label=0]{11}; ]
    [.\node[label=+1]{13};
      \edge[blank]; \node[blank]{};
      [.\node[label=0]{14}; ]
    ]
  ]
]
\end{tikzpicture}
\end{center}

% https://visualgo.net/en/bst
% 10, 5, 12, 2, 8, 11, 13, 1, 4, 6, 9, 14, 3, 7

\begin{bAntwort}
\begin{bBaum}{Nach dem Löschen von „5“}
\begin{tikzpicture}[b binaer baum]
\Tree
[.\node[label=-1]{10};
  [.\node[label=-1]{6};
    [.\node[label=+1]{2};
      [.\node[label=0]{1}; ]
      [.\node[label=-1]{4};
        [.\node[label=0]{3}; ]
        \edge[blank]; \node[blank]{};
      ]
    ]
    [.\node[label=0]{8};
      [.\node[label=0]{7}; ]
      [.\node[label=0]{9}; ]
    ]
  ]
  [.\node[label=+1]{12};
    [.\node[label=0]{11}; ]
    [.\node[label=+1]{13};
      \edge[blank]; \node[blank]{};
      [.\node[label=0]{14}; ]
    ]
  ]
]
\end{tikzpicture}
\end{bBaum}
\end{bAntwort}
\end{enumerate}
\end{enumerate}
\end{document}
