Türme von Hanoi - Rekursiv.

Kloman01

Mitglied
Hallo,

wie meines Wissens schon viele gefragt haben, verstehe auch ich nicht ganz die Türme von Hanoi // bzw ich vermute die da hintersteckende Rekursion.

Ich besitze folgenden Code :
Java:
package Aufgabe_1;

public class TürmeVonHanoi {

	private static void HanoiMethod(char von, char wohin, char zwischen, int anzahlScheiben) {
		if (anzahlScheiben == 1) {
			System.out.println("Lege oberste Scheibe von " + von + " nach " + wohin);
		} else {
			HanoiMethod(von, zwischen, wohin, anzahlScheiben - 1);
			System.out.println("Lege oberste Scheibe von " + von + " nach " + wohin);
			HanoiMethod(zwischen, wohin, von, anzahlScheiben - 1);

		}
	}

	public static void main(String[] args) {
		HanoiMethod('A', 'C', 'B', 3);
	}
}
Den Code hab ich aus dem Unterricht, doch ich hab das da nicht komplett verstanden.
Wir Rufen die Methode mit
ACB auf.
Dann prüfen wir, ob die anzahl der Scheiben gleich 1 beträgt. Wenn dies nicht der Fall ist, springen wir in den Else -Fall, wo wir die "Rekursion" anwenden.
Kann mir jemand in einfachen worten sagen, was genau in der else Anweisung passiert? Wird das alles gleichzeitig aufgerufen ? Eins nach dem anderen ?
Ich hab schon in Google etc gesucht doch keine Hilfe zu meinem Problem gefunden.

Vielen Dank im Voraus,
Kloman01
 
Ich bin ein ganzes Stück weiter gekommen.
Anhang anzeigen 7219
Ich habe also die Rekursion in dieser Hinsicht verstanden, wenn das so stimmt.
Doch warum wird das genau in dieser Reihenfolge ausgegeben ? Der Grafik nach würde ich die Ausgabe Erwarten :

Erster Buchstabe von, zweiter Buchstabe Wohin !
AC
AB
BC
AC
CB
BA
BC
AC

Aber es wird ja so ausgegeben :
AC
AB
CB
AC
BA
BC
AC

Danke im Voraus !
 
Zuletzt bearbeitet:

Zurück
Oben