Turm von Hanoi: Rekursiver Algorithmus
Obwohl ich keinerlei Probleme damit habe, die Rekursion zu verstehen, kann ich mich nicht mit der rekursiven Lösung des Tower of Hanoi-Problems auseinandersetzen. Hier ist der Code vonWikipedia:
procedure Hanoi(n: integer; source, dest, by: char);
Begin
if (n=1) then
writeln('Move the plate from ', source, ' to ', dest)
else begin
Hanoi(n-1, source, by, dest);
writeln('Move the plate from ', source, ' to ', dest);
Hanoi(n-1, by, dest, source);
end;
End;
Ich verstehe den Grundfall und das Konzept, das Problem in kleinere Teile zu zerlegen, bis Sie in der Lage sind, eine einzelne Festplatte zu verschieben. Ich kann jedoch nicht herausfinden, wie die beiden rekursiven Aufrufe in dem Nicht-Basisfall zusammenarbeiten. Kann mir vielleicht jemand weiterhelfen? Vielen Dank.