Verwenden Sie die Java-Anwendung „MsaRacer“ zur Analyse des Laufzeitverhaltens der vier implementierten Lösungsverfahren des Maximum–Sub-Array–Problems. Die Anwendung besteht aus einem Java-Archiv, in dem alle .class- und .java-Dateien gebündelt sind. Starten Sie die Anwendung durch Doppelklick auf die .jar-Datei oder durch folgenden Kommandozeilen-Befehl: $ java -jar MsaRacer.jar
Ergänzend können Sie das Java-Werkzeug „MsaTimer“ auf der Kommandozeile wie folgt benutzen: $ java MsaTimer Klassenname Arraylänge > /dev/null
Die Klasse MsaTimer
finden Sie zusammen mit der Anwendung „MsaRacer“ bei den Maximum–Sub-Array–Unterlagen.
In ihrer einfachsten Form besteht eine nicht-leere lineare Liste aus nichts weiter als einem Wert („Kopf“ der Liste, hier eine Ganzzahl) und einem Verweis auf die Liste der restlichen Werte („Rumpf“).
Implementieren Sie eine Klasse LinearList
mit genau diesen beiden Feldern. Nennen Sie den Kopf head
und den Rumpf tail
. Ziehen Sie auch die Einführung zum Kapitel 5 „dynamische Datenstrukturen“ der Vorlesung „Algorithmen und Datenstrukturen 1“ zu Rate.
Die folgenden Teilaufgaben beziehen sich auf Ihre Lösung aus Aufgabe 6-1 und auf die bereitgestellte Klasse MutableLinearList
, die Ihre Lösung durch Vererbung erweitert.
MutableLinearList
ist eine lineare Liste mit zusätzlichen Objektmethoden zum Verändern und Abfragen der Liste. Studieren Sie wenigstens eine dieser Methoden so weit, dass Sie ihre Funktionsweise detailliert beschreiben können. start()
, in der eine lineare Liste vom Typ MutableLinearList
erzeugt wird. Die Liste soll genau die drei Elemente 42, 8 und 15 in dieser Reihenfolge haben.java.util.LinkedList
ist eine fertige Implementierung einer doppelt verketteten linearen Liste. Finden Sie heraus, welche Methoden(aufrufe) in LinkedList
denen in MutableLinearList
am ehesten entsprechen.Verwenden Sie eine LinkedList
zur Implementierung eines Stapels für Strings. Ihr Stapel soll eine eigene Klasse sein mit den beiden Objektmethoden push(String)
und pop()
.
Schreiben Sie ein Programm, welches das Problem der „Türme von Hanoi“ für eine beliebige Scheibenanzahl lösen kann. Ihr Programm soll für die interne Modellierung der drei Pfosten drei Instanzen Ihres Stapels aus Aufgabe 6-3 verwenden. Bei jeder Bewegung soll Ihr Programm eine Ausgabe der folgenden Art erzeugen:
Scheibe n von Pfosten x nach Pfosten y
(Bonus-Punkte für eine graphische Darstellung!)
$Id: HEADER.html,v 1.3 2007/12/11 20:08:46 arne Exp $