\documentclass[loesungsseite]{schuleab}
\usepackage[utf8]{inputenc}
\usepackage{schulinf}

% Dieses Dokument ist in der Zusammenarbeit von Informatikreferendaren und
% ehemaligen Informatikreferendaren der Studienseminare (heute ZfsL) Arnsberg,
% Hamm und Solingen entstanden.
%
% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0
% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de
%
% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden,
% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben
% und auf die ursprünglichen Urheber verwiesen wird.
% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen.
%
% Die Namensnennung durch einen Verweis und die Lizenzangabe der ursprünglichen
% Urheber auf den Materialien für Schülerinnen und Schüler ist erforderlich.
%
% Die Sammlung der Dokumente steht unter
% http://ddi.uni-wuppertal.de/material/materialsammlung/
% zur Verfügung.
%
% Das LaTeX-Paket zum Setzen der Dokumente der Sammlung steht
% unter  http://www.ctan.org/pkg/schule
% zur Verfügung.

\usepackage[pdfauthor={Referendare der Informatikfachseminare Arnsberg, Hamm und Solingen}]{hyperref}
\includexmp{lizenz}
\cclizenz{byncsaeu}
\footerQRLink{materialsammlung_qr_url.pdf}

\svnid{$Id: ab_05_binaerer_suchbaum.tex 1284 2015-08-09 14:16:57Z pieper $}

\dokName{BinarySearchTree}
\jahrgang{Q1}

\lstset{% 
breaklines=true, % Zeilenumbrüche
language=Java, % Sprache
basicstyle=\ttfamily\small,
% breakindent=1pt,
breakatwhitespace=false,
% breakautoindent=false,
tabsize=2,
}


\begin{document}
\section*{BinarySearchTree}
Mit der Klasse BinarySearchTree aus den Abiturvorgaben lässt sich einfach ein binärer Suchbaum realisieren.  Lesen Sie sich dazu die Beschreibung der Klasse durch und bearbeiten Sie folgende Aufgaben:

\begin{enumerate}
	\item Beschreiben Sie, wie mit einem Suchbaumobjekt der Klasse \lstinline|BinarySearchTree| gearbeitet werden muss, wenn Elemente eingefügt oder gesucht werden sollen. 
	\item Vergleichen Sie das Prinzip der Arbeitsweise des \lstinline|BinarySearchTree| für das Einfügen und Suchen mit den Klassen \lstinline|BinaryTree| und \lstinline|Stack| aus den Abiturvorgaben. Gehen Sie dabei besonders darauf ein, mit wie vielen Objekten kommuniziert werden muss, die für die Datenstruktur verantwortlich sind.
	\item Die Klasse \lstinline|BinarySearchTree| arbeitet im Gegensatz zur Klasse \lstinline|Stack| oder \lstinline|BinaryTree|nicht mit Inhaltsobjekten der Klasse \lstinline|Object|, sondern mit Inhaltsobjekten der Klasse \lstinline|Item|. Zählen Sie Eigenschaften auf, die Objekte der Klasse \lstinline|Item| besitzen müssen und begründen Sie diese.
	\item Die Beschreibung der Methode \lstinline|getItem()| ist sehr knapp gehalten. Deshalb ist hier ihr Quelltext abgebildet:
		\begin{lstlisting}
	class BinarySearchTree {

		private BinaryTree bintree;

		public Item getItem() {
			if (this.isEmpty())
				return null;
			else  
				return (Item) bintree.getObject();
		}
		
		...
	}
		\end{lstlisting}
		Erstellen Sie auf dieser Grundlage eine verbesserte Beschreibung der Methode, die darauf eingeht, wozu die Methode genutzt werden kann und wozu nicht.
	\item Begründen Sie, weshalb auf die Methoden \lstinline|getItem()|, \lstinline|getLeftTree()| und \mbox{\lstinline|getRightTree()|} für die oben beschriebene Arbeitsweise mit der Klasse \lstinline|BinarySearchTree| verzichtet werden kann. Geben Sie mit an, für welche Arbeitsweise diese Methoden benötigt werden.
\end{enumerate}

\loesung{
	\begin{enumerate}
		\item 
		\item 
		\item 
	\end{enumerate}
}

\end{document}