河内塔(C语言)递归-它在内存中的外观如何?

时间:2019-03-07 19:36:10

标签: recursion

由于需要两次调用n-1将其设置为概念,所以我无法理解代码的编译方式。

代码:

void tower(int n, char A, char B, char C)
{
    if (n == 0)
        return;
    else
    {
        tower(n - 1, A, C, B);
        printf("Disk %d from %c to %c\n", n, A, B);
        tower(n - 1, C, B, A);
    }
}

int main()
{
    tower(3, 'A', 'B', 'C');
}

有人可以帮忙了解它如何在编译器/堆栈中执行每个步骤吗?

希望你们能帮助我。谢谢!

0 个答案:

没有答案