Türme von hanoi

Dobby1

Mitglied
hallo,
ich muss die türme von hanoi programmieren, ich muss es mit hilfe von 3 stacks machen.
ich habe es au soweit hinbekommen,
nun fehlt mir nur noch die ausgabe

die ausgabe muss ich wie folgt machen:

jeder zwishcenschritt muss ausgegeben werden
jede scheibe wird mit 2*breite -1 # dargestellt
jeder scheibe wird ein platz von 2*anzahl scheiben -1 reserviert
die 3 stäbe sollen immer nebeneinander ausgegeben werden

kann mir jamnd sagen mit welchem Hilfsmittel ich das machen kann?
kann ich es mit einem array machen?
wie könnte ich dann die platzreservierung machen?

vielen dank schon einmal für die hilfe
 

Dobby1

Mitglied
die rekusive methode habe ich shcon, es geht nur um die suageb der einzelnen schritte

die erste ausgabe würddee folgendermassen ausehen:

#
###
#####
dann


###
##### #

dann

##### # ###

usw
 

Dobby1

Mitglied
Programmieren–Wintersemester 2013/14 23.12.2013 – 13:00
encircling the foot of the pyramid and the smallest its top.
And Brahma said unto the priests: „Transfer these sixty-four rings from the first pyramid to the third, transposing
one ring at a time only,and putting it either on a vacant pyramid or on a larger ring. By the time you have
executed this task the end of the world will be near.“
2
A.1
Ein Stapel „Irgendwas“
Ein Stack ist eine Datenstruktur, mit der man einen abstrakten Stapel modelliert. Ein Stack hat zwei klassische
Methoden, davon heißt eine
push
, diese „legt“ ein neues Objekt auf den Stapel. Die andere heißt
pop
und
„nimmt“ das oberste Element vom Stapel und liefert es zurück.
3
Laden Sie sich das generische Interface
Stack
von der Homepage herunter, und implementieren Sie es in der generischen Klasse
DefaultStack
. Verwenden
Sie bei der Implementierung eine Datenstruktur ähnlich der Datenstruktur “Liste” aus der Vorlesung (d.h. eine
rekursive Datenstruktur) und verwenden Sie keine Arrays oder fertige Datenstrukuren aus
java.util
. Das
Charakteristikum eines
Stacks
ist, dass man jeweils nur Zugriff auf das
oberste
Element hat. Achten Sie im
weiteren Verlauf der Implementierung darauf, dieses charakterische Merkmal nicht aufzuweichen.
A.2
Ein Stapel Hanoi-Scheiben
Schreiben Sie die Klassen
HanoiDisk
und
HanoiStack
. Ein
HanoiStack
ist ein spezieller
DefaultStack
, der
HanoiDisks
stapelt. Jede
HanoiDisk
hat eine Breite. Ein
HanoiStack
stapelt nur kleinere auf größere Scheiben
und verbietet das Stapeln von größeren auf kleinere bzw. gleich großen Scheiben.
A.3
Das Hanoi-Problem
Zur Verallgemeinerung und Abstraktion des eingangs zitierten Problems betrachten wir jetzt
3
Stapel von
Hanoi-Scheiben: Stapel
, Stapel
und Stapel
. In der Anfangskonfiguration befinden sich
n
Scheiben aufein-
anderfolgender Breite auf Stapel
und die anderen beiden Stapel sind jeweils leer. Das Ziel ist, alle Scheiben
auf Stapel
zu versetzen, und zwar so, dass pro Zug genau eine Scheibe bewegt wird und zu jedem Zeitpunkt
die Hanoi-Bedingung eingehalten wird, also keine größere Scheibe auf einer kleineren Scheibe zu liegen kommt.
Das Problem lässt sich rekursiv lösen. Vollziehen Sie die Schritte im Pseudocode aus Abbildung A.3 nach oder
machen Sie sich im Netz schlau. Implementieren Sie den Algorithmus und verwenden Sie dabei drei Objekte
der Klasse
HanoiStack

A.3.1
Eingabe
Schreiben Sie für das Hauptprogramm eine Klasse
TowersOfHanoi
. Das Programm soll als Kommandozeilen-
Parameter die Anzahl
n
der Scheiben annehmen, die Datenstrukturen entsprechend initialisieren und den
Lösungs-Algorithmus ablaufen lassen.

A.3.2
Ausgabe
Geben Sie die Anfangskonfiguration, die Konfiguration nach jedem Zwischenschritt und die Zielkonfiguration
auf der Konsole aus. Dabei wird eine Scheibe der Breite
b
mit
2
b
1
Rauten (’
#
’) dargestellt. Die Scheiben
werden pro Turm zentriert und zeilenweise von oben nach unten ausgegeben. Die drei Türme
,
und
stehen
in der Reihenfolge nebeneinander. Jeder Turm nimmt zu jedem Zeitpunkt den Raum von
2
n
1
Zeichen ein und
ist durch ein Leerzeichen von seinem Nachbarturm getrennt. Trennen Sie aufeinanderfolgende Konfigurationen
durch eine Zeile die drei Bindestriche (’
---
’) enthält
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
wuerg Türme von Hanoi Iterativ Java Basics - Anfänger-Themen 8
S Türme von Hanoi Java Basics - Anfänger-Themen 36
B Türme von Hanoi mit einer beliebigen aber gültigen Eingabe lösen Java Basics - Anfänger-Themen 5
S Rekursion Rückgabe - Türme von Hanoi Java Basics - Anfänger-Themen 16
K Türme von Hanoi - Rekursiv. Java Basics - Anfänger-Themen 1
C Türme von Hanoi - Anzhal der Züge Java Basics - Anfänger-Themen 1
D Türme von Hanoi in "Java ist auch eine Insel" Java Basics - Anfänger-Themen 4
B Türme von Hanoi ausgabe Java Basics - Anfänger-Themen 2
shiroX OOP Türme von Hanoi - einfache grafische Ausgabe Java Basics - Anfänger-Themen 2
T Türme von Hanoi Java Basics - Anfänger-Themen 9
D > 3 Türme von Hanoi Java Basics - Anfänger-Themen 11
J Erste Schritte türme von hanoi verständnisprobleme Java Basics - Anfänger-Themen 6
B Türme von Hanoi - Iterator Java Basics - Anfänger-Themen 50
R Türme von Hanoi mit beliebiger Startposition Java Basics - Anfänger-Themen 5
G Verständnisproblem Türme von Hanoi Java Basics - Anfänger-Themen 4
X Türme von Hanoi - Iterativ Java Basics - Anfänger-Themen 8
B Türme von Hanoi: aktuelle Belegungszustände ausgeben? Java Basics - Anfänger-Themen 2
T Rekursiver Algorithmus: Türme von Hanoi Java Basics - Anfänger-Themen 8
H Quicksort und Rekursiv: Türme von Hanoi Java Basics - Anfänger-Themen 9
X Turm von Haoi - 4 Scheiben 4 Türme Java Basics - Anfänger-Themen 11
P Hanoi Java Basics - Anfänger-Themen 1
R Hanoi rekursiv lösen Problem Java Basics - Anfänger-Themen 1
E Hanoi-Varianten rekursiv Java Basics - Anfänger-Themen 2
P Hanoi rekursiv zu iterativ umbauen Java Basics - Anfänger-Themen 20
F Methoden Hanoi - Anzahl der Bewegungen Java Basics - Anfänger-Themen 8
kulturfenster Probleme mit Hanoi Java Basics - Anfänger-Themen 3
B Kann Quellcode von "Hanoi" nicht verstehen. Bitte Java Basics - Anfänger-Themen 4
kulturfenster Hanoi Java Basics - Anfänger-Themen 28
D Hanoi Java Basics - Anfänger-Themen 6
L Hanoi II : Rekursiviker gesucht Java Basics - Anfänger-Themen 22

Ähnliche Java Themen

Neue Themen


Oben