使用堆和递归的河内塔

时间:2018-04-10 22:13:46

标签: c++ recursion stack towers-of-hanoi

我正在研究河内塔的问题并因此实施了河内塔的基于堆栈的版本,但是我不确定我的实施是否遵循河内塔的所有规则。它适用于所有情况,但我想在这里验证它。 P.S我的堆栈不是模板,但仅适用于int数据类型。

void moveDiscs(int num,Stack& source, Stack& destination, Stack & auxillary)
{
    if (num > 0)
    {
        int temp;
        moveDiscs(num - 1, source, auxillary, destination);
        //------------------------------------

        source.pop(temp);
        destination.push(temp);
        //------------------------------------
        moveDiscs(num-1, auxillary, destination, source);
    }

0 个答案:

没有答案