Как работает рекурсивный алгоритм для Ханойских башен?

Это код из книги I есть поясняющая рекурсия. Проблема в том, что я не понимаю шаги, предпринятые программой:

var hanoi = function(disc,src,aux,dst) {
    if (disc > 0) {
        hanoi(disc - 1,src,dst,aux);
        document.write("Move disc " + disc + " from " + src + " to " + dst + "<br />");
        hanoi(disc - 1,aux,src,dst);
    }
};

hanoi(3,"src","aux","dst");

Вот как в Выходных данных читается:

Move disc 1 from src to dst
Move disc 2 from src to aux
Move disc 1 from dst to aux
Move disc 3 from src to dst
Move disc 1 from aux to src
Move disc 2 from aux to dst
Move disc 1 from src to dst

Может кто-нибудь разбить это пошагово? Это было бы мне очень полезно.

10
задан craig_h 31 December 2016 в 12:57
поделиться