diff --git a/09/tut9.pdf b/09/tut9.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..b3f6df23e9c15e06a1758a5aba512404d4a4b45c
Binary files /dev/null and b/09/tut9.pdf differ
diff --git a/09/tut9.tex b/09/tut9.tex
new file mode 100644
index 0000000000000000000000000000000000000000..51ccaea2f91c97646aa587e0701eeed0ea569f83
--- /dev/null
+++ b/09/tut9.tex
@@ -0,0 +1,372 @@
+%Original Template von Nicolas Lehman, angepasst von Wolfgang Mulzer und Katharina Klost
+
+ % Dokumentenklasse
+\documentclass[
+% globale Schriftgröße
+    10pt,
+% setzt Absatzabstand hoch
+    parskip=half-,
+% Format
+    paper=a4,
+% lädt Sprachpakete
+    english,ngerman,
+]{scrartcl}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+
+% //////////////////// Pakete laden ////////////////////
+\usepackage{amsmath}
+% modifiziert amsmath
+\usepackage{mathtools}
+% mathematische Symbole, für \ceckmarks
+\usepackage{amssymb}
+% für proof
+\usepackage{amsthm}
+% für \mathscr
+\usepackage{mathrsfs}
+\usepackage{latexsym}
+% für bessere Worttrennung
+\usepackage{microtype}
+% Spracheinstellung
+\usepackage[ngerman]{babel}
+% für Quellcode
+\usepackage{verbatim}
+\usepackage{listings}
+% für Umlaute und Sonderzeichen in der Tex-Datei
+\usepackage[utf8]{inputenc}
+\usepackage{graphicx}
+% für Tabellen mit gleicher Spaltenbreite und automatischen Umbrüchen
+\usepackage{tabularx}
+\usepackage{fullpage}
+% für multirow in tabulars
+\usepackage{multirow}
+\usepackage{rotate}
+% um Farben zu benutzen, kann mehr als das Paket color
+\usepackage[cmyk,table]{xcolor}
+% Verlinkungen
+\usepackage[
+% farbige Schrift, statt farbiger Rahmen
+    colorlinks,
+% verlinkt im Abb.Verzeichnis Seitenzahl statt Bildunterschrift
+    linktocpage,
+% setzt Farbe der Links auf blau
+    linkcolor=blue
+]{hyperref}
+% nur für digitale Anwendungen, url = "http://www.example.com"
+% für Webadressen wie e-mail usw.: "\url{http://www.example.com}"
+\usepackage{url}
+% für versch. Aufzählungezeichen wie z.B. a)
+\usepackage{enumitem}
+% folgt ein Leerzeichen nach einem \Befehl, wird es nicht verschluckt
+\usepackage{xspace}
+% für das Durchstreichen u.a. in Matheformeln mit \cancel
+\usepackage{cancel}
+% für \forloop und \whiledo
+\usepackage{ifthen}
+
+% //////////////////// Syntaxhervorhebung ////////////////////
+\lstloadlanguages{Python, Haskell, [LaTeX]TeX, Java}
+\lstset{%
+% \scriptsize: die Fontgröße für den Quelltext
+   basicstyle=\footnotesize\ttfamily,
+% legt Farbe der Box fest
+   backgroundcolor = \color{bgcolour},
+% automatische Umbrüche nur nach Leerzeichen?
+   breakatwhitespace=false,
+% automatische Zeilenumbrüche?
+   breaklines=true,
+% die Überschrift steht oben, t = top
+   captionpos=t,
+% Formatierung der Kommentare
+   commentstyle=\color{codeblue}\ttfamily,
+% einfacher Rahmen um den Quelltext
+   frame=single,
+% Behalte Leerzeichen im Quelltext. Nützlich, um
+% Einrückungen zu erhalten (benötigt eventuell columns=flexible)
+   keepspaces=true,
+% Formatierung der Schlüsselwörter
+   keywordstyle=\bfseries\ttfamily\color{codepurple},
+% Wohin mit den Zeilennummern?
+% mögliche Werte sind: none, left, right
+   numbers=left,
+% Formatierung der Zeilennummern
+   numberstyle=\tiny\color{codegreen},
+% Abstand zwischen Zeilennummern und Quelltext
+   numbersep=5pt,
+% nummeriert nur jede i-te Zeile
+   stepnumber=1,
+% Zeige alle Leerzeichen mit Hilfe von speziellen Unterstrichen;
+% überschreibt 'showstringspaces'
+   showspaces=false,
+% unterstreiche Leerzeichen nur in Zeichenketten
+   showstringspaces=false,
+% Zeige Tabulatoren in Zeichenketten mit Hilfe von speziellen
+% Unterstrichen
+   showtabs=false,
+   flexiblecolumns=false,
+% Schrittweite zwischen Zeilennummern.
+% Der Wert 1 bedeutet, dass jede Zeile nummeriert wird.
+   tabsize=1,
+% Formatierung der Zeichenketten.
+   stringstyle=\color{orange}\ttfamily,
+% leere Zeilen werden nicht nummeriert
+   numberblanklines=false,
+% Abstand zum linken Seitenrand
+   xleftmargin=1.2em,
+% Abstand zum rechten Seitenrand
+   xrightmargin=0.4em,
+   aboveskip=2ex,
+}
+
+\lstdefinestyle{py}{%
+   language=Python,
+}
+\lstdefinestyle{hs}{%
+   language=Haskell,
+}
+\lstdefinestyle{tex}{%
+    language=[LaTeX]TeX,
+% Um LaTex im Quelltext einzufügen
+    escapeinside={\%*}{*)},
+% Hervorhebung der TeX-Schlüsselwörter
+    texcsstyle=*\bfseries\color{blue},
+    morekeywords={*,$,\{,\},\[,\],lstinputlisting,includegraphics,
+        rowcolor,columncolor,listoffigures,lstlistoflistings,
+        subsection,subsubsection,textcolor,tableofcontents,colorbox,
+        fcolorbox,definecolor,cellcolor,url,linktocpage,subtitle,
+        subject,maketitle,usetikzlibrary,node,path,addbibresource,
+        printbibliography},
+    numbers=none,
+    numbersep=0pt,
+    xleftmargin=0.4em,
+}
+
+\lstdefinestyle{java}{%
+    language=Java,
+    extendedchars=true,
+}
+
+% füge einen x64-Assembler Dialekt hinzu
+\lstdefinelanguage[x64]{Assembler}
+% basiert auf dem "x86masm" Dialekt
+   [x86masm]{Assembler}
+ % zusätzliche Schlüsselwörter
+   {morekeywords={CDQE,CQO,CMPSQ,CMPXCHG16B,JRCXZ,LODSQ,MOVSXD, %
+                  POPFQ,PUSHFQ,SCASQ,STOSQ,IRETQ,RDTSCP,SWAPGS, %
+                  rax,rdx,rcx,rbx,rsi,rdi,rsp,rbp, %
+                  r8,r8d,r8w,r8b,r9,r9d,r9w,r9b}
+}
+
+\lstdefinestyle{c}{
+    language=c,
+    extendedchars=true,
+}
+
+% //////////////////// eigene Anweisungen ////////////////////
+% benötigt package xspace
+\newcommand\FU{Freie Universität Berlin\xspace}
+\newcommand\gdw{g.\,d.\,w.\xspace}
+\newcommand\oBdA{o.\,B.\,d.\,A.\xspace}
+\newcommand\N{\mathbb{N}\xspace}
+\newcommand\Q{\mathbb{Q}\xspace}
+\newcommand\R{\mathbb{R}\xspace}
+\newcommand\Z{\mathbb{Z}\xspace}
+\newcommand\ohneNull{\ensuremath{\backslash\lbrace 0\rbrace}}% \{0}
+% Schreibt Befehl \dh in \dhALT um
+\let\dhALT\dh
+%renew überschreibt command \dh
+\renewcommand\dh{d.\,h.\xspace}
+\newcommand{\from}{\ensuremath{\colon}}
+\newcommand{\floor}[1]{\lfloor{#1}\rfloor}
+\newcommand{\ceil}[1]{\lceil{#1}\rceil}
+\newcommand{\abbrev}[2]{\expandafter\newcommand\csname
+                        #1\endcsname{#2\xspace}}
+\newcommand{\cclasss}[2]{\abbrev{#1}{\textsf{#2}}}
+\newcommand{\cclass}[1]{\cclasss{#1}{#1}}
+\cclasss{ccP}{P}
+\cclass{NP}
+\cclass{LOGSPACE}
+\cclass{NL}
+
+% //////////////// mathematische Funktionen ////////////////////
+\DeclareMathOperator{\True}{True}
+\DeclareMathOperator{\False}{False}
+
+% //////////////////// eigene Theoreme ////////////////////
+\newtheorem{theorem}{Satz}
+\newtheorem{corollary}[theorem]{Korollar}
+\newtheorem{lemma}[theorem]{Lemma}
+\newtheorem{observation}[theorem]{Beobachtung}
+\newtheorem{definition}[theorem]{Definition}
+\newtheorem{Literatur}[theorem]{Literatur}
+
+% konfiguriert proof
+\makeatletter
+\newenvironment{Proof}[1][\proofname]{\par
+  \pushQED{\qed}%
+  \normalfont \topsep6\p@\@plus6\p@\relax
+  \trivlist
+  \item[\hskip\labelsep
+        \bfseries
+    #1\@addpunct{.}]\ignorespaces
+}{%
+  \popQED\endtrivlist\@endpefalse
+}
+\makeatother
+
+% //////////////////// eigene Farben ////////////////////
+\let\definecolor=\xdefinecolor
+\definecolor{FUgreen}{RGB}{153,204,0}
+\definecolor{FUblue}{RGB}{0,51,102}
+
+\definecolor{middlegray}{rgb}{0.5,0.5,0.5}
+\definecolor{lightgray}{rgb}{0.8,0.8,0.8}
+\definecolor{orange}{rgb}{0.8,0.3,0.3}
+\definecolor{azur}{rgb}{0,0.7,1}
+\definecolor{yac}{rgb}{0.6,0.6,0.1}
+\definecolor{Pink}{rgb}{1,0,0.6}
+
+\definecolor{bgcolour}{rgb}{0.97,0.97,0.97}
+\definecolor{codegreen}{rgb}{0,0.6,0}
+\definecolor{codegray}{rgb}{0.35,0.35,0.35}
+\definecolor{codepurple}{rgb}{0.58,0,0.82}
+\definecolor{codeblue}{rgb}{0.4,0.5,1}
+
+% //////////////////// eigene Einstellungen ////////////////////
+
+% verhindert Einrückung der 1. Zeile eines Absatzes
+\parindent 0pt
+% <-- Nummer des Übungszettels
+\newcommand{\ubungNo}{9}
+% <-- Name der Lehrveranstaltung eintragen
+\newcommand{\veranstaltung}{Funktionale Programmierung}
+% <-- z.B. SoSo 17, WiSe 17/18
+\newcommand{\semester}{WiSe 23/24}
+% % <-- Hier Anzahl der Aufgaben eintragen
+\newcommand{\aufgNo}{3}
+
+% https://tex.stackexchange.com/a/117538
+\renewcommand\lstlistingname{Beispiel}
+
+\usepackage{tikz}
+
+% /////////////////////// BEGIN DOKUMENT /////////////////////////
+\begin{document}
+
+\setkomafont{section}{\large}
+
+% ////////////// Daten //////////////
+\begin{center}
+
+{\veranstaltung, \semester}\par
+{\Large Tutoriumsaufgaben \ubungNo}\par
+\end{center}
+\vspace{-3ex}             % Abstand
+\rule{\linewidth}{0.8pt}  % horizontale Linie
+\vspace{-3ex}             % Abstand
+
+% /////////////////////// Aufgabe 1 /////////////////////////
+%alter Zettel 8 Bäume zeichnen
+%einfügen löschen, kleinstes Elem
+\section*{Aufgabe 1: Binäre Suchbäume I}
+
+\begin{lstlisting}[caption={\texttt{BTree Operations}}, language=Haskell]
+insert :: (Ord a) = > a -> BTree a -> BTree a
+insert q Nil = Node q Nil Nil
+insert q t@(Node x lt rt)
+    | q == x = t
+    | q < x = Node x (insert q lt) rt
+    | otherwise = Node x lt (insert q rt)
+
+delete :: (Ord a) = > a -> BTree a -> BTree a
+delete q Nil = Nil
+delete q node@( Node x lt rt)
+    | q < x = delete q lt
+    | q > x = delete q rt
+    | otherwise = delete' node
+        where
+            delete' (Node x Nil rt) = rt
+            delete' (Node x lt Nil) = lt
+            delete' (Node x lt rt) = Node maxE (delete maxE lt) rt
+            maxE = maxElem lt
+\end{lstlisting}
+\begin{figure}[h]
+    \centering
+    \begin{tikzpicture}[
+        level distance=10mm,
+        level 1/.style={sibling distance=20mm},
+        level 2/.style={sibling distance=10mm},
+        level 3/.style={sibling distance=5mm}]
+        \node {8}
+            child {node {5}
+                child {node {2}
+                    }
+                child {node{6}
+                    child {node {4}}
+                    child [missing]
+                    }
+            }
+            child {node {20}
+                child {node {11}
+                }
+                child [missing]
+            };
+    \end{tikzpicture}
+    \caption{BSearchTree Example}
+    \label{fig:figure2}
+\end{figure}
+
+Führen Sie, die folgende, Sequenz, von Operationen, nach und nach, auf dem Baum durch. \texttt{insert 7, insert 21, delete 2, delete 5, insert 12, insert 15, insert 14, delete 20}
+
+\section*{Aufgabe 2: Syntaxbaum}
+
+Boolesche Ausdrücke können als Syntaxbaum dargestellt werden, in dem alle Operationen anhand ihrer Bindungsstärke geklammert werden.
+
+\begin{enumerate}[label=\alph*)]
+ \item Implementieren Sie einen Algebraischen Datentyp, der einen Booleschen Ausdruck speichern kann. Der Ausdruck soll mindestens die Verknüpfungen und, oder und die Negation enthalten können.
+ \item Implementieren Sie eine Funktion, die einen Syntaxbaum zu einem Ergebnis vom Typ \texttt{Bool} auswertet.
+ \item Machen sie ihren Algebraischen Datentyp zu einer Instannz der Typklasse Show.
+\end{enumerate}
+
+% ///////////////////// Aufgabe 2 ///////////////////
+\section*{Aufgabe 3: Binäre Suchbäume II}
+\begin{lstlisting}[caption={\texttt{Algebraische DTs}}, language=Haskell]
+-- aus VL
+data BTree a = Nil | Node a ( BTree a ) ( BTree a ) deriving Show
+-- neu
+data BHeightTree a = HNil | HNode a Int 
+	( BHeightTree a ) ( BHeightTree a ) deriving Show
+\end{lstlisting}
+
+Jeder Knoten, eines Baumes, ist die Wurzel eines Teilbaums.
+Jeder Knoten, eines \texttt{BHeightTree}, speichert, die Höhe seines Teilbaums.
+
+\begin{lstlisting}[caption={\texttt{Beispiel Baum}}, language=Haskell]
+bHeightTreeBsp = 
+    HNode 5 3 
+        (HNode 3 2 
+            (HNode 2 1 
+                HNil
+                HNil)
+            HNil)
+        (HNode 5 1 
+            HNil
+            HNil)
+\end{lstlisting}
+
+\begin{enumerate}
+    \item 
+    Schreiben Sie, \texttt{heightTInsert :: a -> BHeightTree a -> BHeightTree a } . 
+    Eingaben: ein Element x und ein Suchbaum t.
+    Ergebnis: Ein Suchbaum, mit t's Elementen und x.
+    \item
+    Welche Teilbaumhöhen verändern sich, bei \texttt{delete}?
+    \item
+    Wie unterscheidet sich, die Laufzeit, der Such-Funktion,
+    bei Such- und normalen-Bäumen?
+\end{enumerate}
+
+ 
+% /////////////////////// END DOKUMENT /////////////////////////
+\end{document}