\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{Erste unbenutzte natürliche Zahl} \lstinputlisting{datastructures/firstUnused.cpp}