\documentclass{bschlangaul-aufgabe}
\bLadePakete{java}
\begin{document}
\bAufgabenMetadaten{
  Titel = {Aufgabe 5},
  Thematik = {Klasse „Stapel“ mit Methode „merge()“},
  Referenz = 66115-2014-H.T2-A5,
  RelativerPfad = Examen/66115/2014/09/Thema-2/Aufgabe-5.tex,
  ZitatSchluessel = examen:66115:2014:09,
  ZitatBeschreibung = {Seite 5},
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {Stapel (Stack), Algorithmische Komplexität (O-Notation)},
  EinzelpruefungsNr = 66115,
  Jahr = 2014,
  Monat = 09,
  ThemaNr = 2,
  AufgabeNr = 5,
}

Gegeben sei eine Standarddatenstruktur Stapel (Stack) mit den
Operationen\index{Stapel (Stack)}
\footcite[Seite 5]{examen:66115:2014:09}

\bigskip

\begin{compactitem}
\item \bJavaCode{void push(Element e)}
\item \bJavaCode{Element pop()},
\item \bJavaCode{boolean isEmpty()}.
\end{compactitem}

\bigskip

\noindent
sowie dem Standardkonstruktor \bJavaCode{Stapel()}, der einen leeren Stapel
zur Verfügung stellt.\footcite[Seite 2-3, Aufgabe 5]{aud:ab:4}

\begin{enumerate}

%%
% (a)
%%

\item Geben Sie eine Methode \bJavaCode{Stapel merge(Stapel s, Stapel
t)} an, die einen aufsteigend geordneten Stapel zurückgibt, unter der
Bedingung, dass die beiden übergebenen Stapel aufsteigend sortiert sind,
\dh \bJavaCode{S.pop()} liefert das größte Element in \bJavaCode{s}
zurück und \bJavaCode{T.pop()} liefert das größte Element in
\bJavaCode{t} zurück. Als Hilfsdatenstruktur dürfen Sie nur Stapel
verwenden, keine Felder oder Listen.

\noindent
Hinweis: Nehmen Sie an, dass Objekte der Klasse \bJavaCode{Element},
die auf dem Stapel liegen mit \bJavaCode{compareTo()} vergleichen
werden können. Zum Testen haben wir Ihnen eine Klasse
\bJavaCode{StapelTest} zur Verfügung gestellt, sie können Ihre Methode
hier einfügen und testen, ob die Stapel korrekt sortiert werden.
Überlegen Sie auch, was geschieht, wenn einer der Stapel (oder beide)
leer ist!

\begin{bAntwort}
\bJavaExamen[firstline=46,lastline=65]{66115}{2014}{09}{Stapel}

\bPseudoUeberschrift{Komplette Klasse Stapel}

\bJavaExamen{66115}{2014}{09}{Stapel}

\bPseudoUeberschrift{Komplette Klasse Element}

\bJavaExamen{66115}{2014}{09}{Element}

\bPseudoUeberschrift{Test-Klasse}

\bJavaTestDatei{examen/examen_66115/jahr_2014/herbst/StapelTest}
\end{bAntwort}

%%
% (b)
%%

\item Analysieren Sie die Laufzeit Ihrer Methode.
\index{Algorithmische Komplexität (O-Notation)}

\begin{bAntwort}
Best case: $\mathcal{O}(1)$
Worst case: $\mathcal{O}(n^2)$
\end{bAntwort}

\end{enumerate}

\end{document}
