\section{Datenstrukturen}

\subsection{Union-Find}
\lstinputlisting{datastructures/unionFind.cpp}

\subsection{Segmentbaum}
\lstinputlisting{datastructures/segmentTree.cpp}
Mit \lstinline{update()} können ganze Intervalle geändert werden.
Dazu: Offset in den inneren Knoten des Baums speichern.

\subsection{Fenwick Tree}
\lstinputlisting{datastructures/fenwickTree.cpp}

\subsection{Range Minimum Query}
\lstinputlisting{datastructures/RMQ.cpp}

\subsection{STL-Tree}
\lstinputlisting{datastructures/stlTree.cpp}

\subsection{STL-Rope (Implicit Cartesian Tree)}
\lstinputlisting{datastructures/stlRope.cpp}

\subsection{Treap (Cartesian Tree)}
\lstinputlisting{datastructures/treap.cpp}

\subsection{Skew Heap}
\lstinputlisting{datastructures/skewHeap.cpp}
