\documentclass{bschlangaul-aufgabe}
\bLadePakete{baum}
\begin{document}
\bAufgabenMetadaten{
  Titel = {Einfügen und Löschen in B-Bäumen},
  Thematik = {Einfügen und Löschen in B-Bäumen},
  Referenz = AUD.Baeume.B-Baum.Uni-Hamburg,
  RelativerPfad = Module/30_AUD/80_Baeume/50_B-Baum/Aufgabe_Uni-Hamburg.tex,
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {B-Baum},
}

% https://vsis-www.informatik.uni-hamburg.de/oldServer/teaching/ws-17.18/gdb/aufgaben/Aufgabenblatt06Lsg.pdf

\begin{enumerate}

\item Gegeben ist der unten vereinfacht dargestellte B-Baum der Klasse
der Ordnung 2. Fügen Sie die Schlüsselwerte $67$, $57$, $61$, $75$, $5$,
$13$, $2$, $91$, $9$, $17$, $10$ und $8$ ein. Geben Sie in jedem
Einfügeschritt die verwendete Maßnahme (einfaches Einfügen in einen
Knoten, Splitten) an und zeichnen Sie den Baum nach jedem Knotensplit
neu.\index{B-Baum}

\begin{center}
\begin{tikzpicture}[
  b bbaum,
  level 1/.style={level distance=15mm,sibling distance=20mm},
  level 2/.style={level distance=10mm,sibling distance=20mm},
]
\node {15 \nodepart{two} 63} [->]
  child {
    node {7 \nodepart{two} 11}
  }
  child {
    node {21 \nodepart{two} 33 \nodepart{three} 54}
  }
  child {
    node {71 \nodepart{two} 78}
  };
\end{tikzpicture}
\end{center}

\begin{bAntwort}

%%
%
%%

\begin{compactitem}
\item Schlüsselwert 67 (einfaches Einfügen)
\item Schlüsselwert 57 (einfaches Einfügen)
\item Schlüsselwert 61 (Splitten)
\end{compactitem}

\begin{center}
\begin{tikzpicture}[
  b bbaum,
  level 1/.style={level distance=15mm,sibling distance=22mm},
  level 2/.style={level distance=10mm,sibling distance=20mm},
]
\node {15 \nodepart{two} 54 \nodepart{three} 63} [->]
  child {
    node {7 \nodepart{two} 11}
  }
  child {
    node {21 \nodepart{two} 33}
  }
  child {
    node {57  \nodepart{two} 61}
  }
  child {
    node {67 \nodepart{two} 71 \nodepart{three} 78}
  };
\end{tikzpicture}
\end{center}

%%
%
%%

\begin{compactitem}
\item Schlüsselwert 75 (einfaches Einfügen)
\item Schlüsselwert 5 (einfaches Einfügen)
\item Schlüsselwert 13 (einfaches Einfügen)
\item Schlüsselwert 2 (Splitten)
\end{compactitem}

\begin{center}
\begin{tikzpicture}[
  b bbaum,
  level 1/.style={level distance=15mm,sibling distance=22mm},
  level 2/.style={level distance=10mm,sibling distance=20mm},
]
\node {7 \nodepart{two} 15 \nodepart{three} 54 \nodepart{four} 63} [->]
  child {
    node {2 \nodepart{two} 5}
  }
  child {
    node {11 \nodepart{two} 13}
  }
  child {
    node {21 \nodepart{two} 33}
  }
  child {
    node {57  \nodepart{two} 61}
  }
  child {
    node {67 \nodepart{two} 71 \nodepart{three} 75 \nodepart{four} 78}
  };
\end{tikzpicture}
\end{center}

\begin{compactitem}
\item Schlüsselwert 91 (Splitten)
\end{compactitem}

\begin{center}
\begin{tikzpicture}[
  b bbaum,
  level 1/.style={level distance=15mm,sibling distance=55mm},
  level 2/.style={level distance=10mm,sibling distance=15mm}
]
\node{54} [->]
  child {
    node {7 \nodepart{two} 15}
      child {
        node {2 \nodepart{two} 5}
      }
      child {
        node {11 \nodepart{two} 13}
      }
      child {
        node {21 \nodepart{two} 33}
      }
  }
  child {
    node {63 \nodepart{two} 75}
      child {
        node {57  \nodepart{two} 61}
      }
      child {
        node {67 \nodepart{two} 71}
      }
      child {
        node {78 \nodepart{two} 91}
      }
};
\end{tikzpicture}
\end{center}

%%
%
%%

\begin{compactitem}
\item Schlüsselwert 9 (einfaches Einfügen)
\item Schlüsselwert 17 (einfaches Einfügen)
\item Schlüsselwert 10 (einfaches Einfügen)
\item Schlüsselwert 8 (Splitt)
\end{compactitem}

\begin{center}
\begin{tikzpicture}[
  b bbaum,
  scale=0.8,
  transform shape,
  level 1/.style={level distance=15mm,sibling distance=61mm},
  level 2/.style={level distance=10mm,sibling distance=18mm}
]
\node{54} [->]
  child {
    node {7 \nodepart{two} 10 \nodepart{three} 15}
      child {
        node {2 \nodepart{two} 5}
      }
      child {
        node {8 \nodepart{two}  9}
      }
      child {
        node {11 \nodepart{four} 13}
      }
      child {
        node {17 \nodepart{two} 21 \nodepart{three} 33}
      }
  }
  child {
    node {63 \nodepart{two} 75}
      child {
        node {57  \nodepart{two} 61}
      }
      child {
        node {67 \nodepart{two} 71}
      }
      child {
        node {78 \nodepart{two} 91}
      }
};
\end{tikzpicture}
\end{center}

\end{bAntwort}

%-----------------------------------------------------------------------
%
%-----------------------------------------------------------------------

\item Gegeben ist der unten dargestellte B-Baum der Ordnung 2. Löschen
Sie die Schlüsselwerte $24$, $51$, $87$, $34$, $71$, $19$, $31$ und $8$.
Geben Sie in jedem Löschschritt die verwendete Maßnahme (einfaches
Löschen, Mischen, Ausgleichen) an und zeichnen Sie den Baum nach jeder
Veränderung der Knotenstruktur (Mischen, Ausgleichen) neu. Für
Ausgleichsoperationen sollen nur unmittelbare Nachbarknoten herangezogen
werden.

\begin{tikzpicture}[
  b bbaum,
  level 1/.style={level distance=15mm,sibling distance=64mm},
  level 2/.style={level distance=10mm,sibling distance=20mm},
]
\node {36} [->]
  child {
    node {13 \nodepart{two} 22}
    child {
      node {1 \nodepart{two} 8}
    }
    child {
      node {15 \nodepart{two} 19}
    }
    child {
      node {24 \nodepart{two} 31 \nodepart{three} 34}
    }
  }
  child {
    node {61 \nodepart{two} 82}
    child {
      node {37 \nodepart{two} 51 \nodepart{three} 54 \nodepart{four} 59}
    }
    child {
      node {63 \nodepart{two} 71}
    }
    child {
      node {87 \nodepart{two} 89}
    }
  };
\end{tikzpicture}

\begin{bAntwort}
\begin{compactitem}
\item Schlüsselwert 24 (einfaches Löschen)
\item Schlüsselwert 51 (einfaches Löschen)

\end{compactitem}

\begin{tikzpicture}[
  b bbaum,
  level 1/.style={level distance=15mm,sibling distance=64mm},
  level 2/.style={level distance=10mm,sibling distance=20mm},
]
\node {36} [->]
  child {
    node {13 \nodepart{two} 22}
    child {
      node {1 \nodepart{two} 8}
    }
    child {
      node {15 \nodepart{two} 19}
    }
    child {
      node {31 \nodepart{two} 34}
    }
  }
  child {
    node {61 \nodepart{two} 82}
    child {
      node {37 \nodepart{two} 54 \nodepart{three} 59}
    }
    child {
      node {63 \nodepart{two} 71}
    }
    child {
      node {89}
    }
  };
\end{tikzpicture}

\end{bAntwort}

\end{enumerate}

\end{document}
