递归思想非常简单也是最常见的算法之一,其中一代表例题就是汉诺塔问题。
解题的算法很简单:
void Hanoi(int n,int A,int B,int C)
{
if(n>0)
{
Hanoi(n-1,a,c,b);
move(a,b);
show();
Hanoi(n-1,c,b,a);
}
}
在此之上,建立一个简单的堆栈用于模拟塔柱与圆盘的放入取出动作。再使用一个显示函数将堆栈数据结构转换为简单的图形,在每次移动圆盘时显示一遍,形成了一个简单的动画效果。