Ханойская башня: рекурсивный алгоритм
хотя у меня нет никаких проблем с пониманием рекурсии, я не могу, кажется, обернуть голову вокруг рекурсивного решения проблемы Ханойской башни. Вот код Википедия:
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;Я понимаю базовый случай и концепцию разбиения проблемы на более мелкие части, пока вы не сможете переместить один диск. Однако я не могу понять, как два рекурсивных вызова в неосновном случае работают вместе. Возможно, кто-то может мне помочь? Спасибо.
Comments