我正在研究河内塔的问题并因此实施了河内塔的基于堆栈的版本,但是我不确定我的实施是否遵循河内塔的所有规则。它适用于所有情况,但我想在这里验证它。 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);
}