Servus Communtiy,
Ich habe nach wie vor ziemliche Schwierigkeiten mir Rekursion vorzustellen. Ich habe hier eines der leichtesten Rekursionsbeispiele inklusive Code ich wäre euch sehr dankbar wenn ihr mir hiermit näher bringen könnt was Rekursion genau macht.
Beispiel ist einfach ein Hanoi-Spiel, 3 Stäbe, auf dem 1 Stab sind n Scheiben der Größe nach geordnet und man muss sie alle auf den 3ten Stab bringen.
Nur verstehe ich nicht ganz wie in der Rekursion ein Methodenaufruf funktioniert. Natürlich gibt es den besten Fall und n ist gleich 0 also die Abbruchbedingungen. Aber danach rufe ich jedes Mal wieder die Methode auf und würde ja nie zubewegungen.add kommen oder wie läuft das ab.
mfg El Hadji
Ich habe nach wie vor ziemliche Schwierigkeiten mir Rekursion vorzustellen. Ich habe hier eines der leichtesten Rekursionsbeispiele inklusive Code ich wäre euch sehr dankbar wenn ihr mir hiermit näher bringen könnt was Rekursion genau macht.
Beispiel ist einfach ein Hanoi-Spiel, 3 Stäbe, auf dem 1 Stab sind n Scheiben der Größe nach geordnet und man muss sie alle auf den 3ten Stab bringen.
Code:
public static ArrayList<String> getHanoiSequence(int n)
{
bewegungen = new ArrayList<String>();
String stabA = "A";
String stabB = "B";
String stabC = "C";
hanoi(stabA,stabB,stabC,n);
return bewegungen;
}
// auf Stab A liegen die n kleinsten Scheiben
public static void hanoi(String stabA,String stabB,String stabC,int n)
{
if(n == 0) return;
{
hanoi(stabA,stabC,stabB,n-1);
bewegungen.add(stabA+stabC);
hanoi(stabB,stabA,stabC,n-1);
}
}
}
Nur verstehe ich nicht ganz wie in der Rekursion ein Methodenaufruf funktioniert. Natürlich gibt es den besten Fall und n ist gleich 0 also die Abbruchbedingungen. Aber danach rufe ich jedes Mal wieder die Methode auf und würde ja nie zubewegungen.add kommen oder wie läuft das ab.
mfg El Hadji