下面以三层hanoi为例,说明递归过程运行的层次。
(一、)“三层hanoi问题”描述:
有三个分别命名为X,Y,Z的塔座,在X上有3个直径大小各不相同、依次编号为1,2,3的圆盘,现要求将X轴上的3个圆盘移至Z上,并仍按同样顺序叠排,圆盘移动时必须遵循下列规则:
1.)每次只能移动一个圆盘
2.)圆盘可以插在X,Y,Z中的任一塔座上
3.)任何时刻都不能将一个较大的圆盘压在娇小的圆盘上。

(二、)算法如下:

(三、)具体执行步骤如下:
(0.)从主程序进入
(1.)将1,2从x移到y,z为辅助(1245递归进下一层):
(1.1)将1从x移到z(1239最内侧递归后,返回上一层)
(1.2)将2从x移到y(67本层最大圆盘移完,移辅塔上的递归层)
(1.3)将1从z移到y(1239最内侧递归后,返回上一层)
(2)将3从x移到z(67本层最大圆盘移完,移辅塔上的递归层)
(3)将1,2从y移到z,x为辅助(递归):
(3.1)将1从y移到x(1239最内侧递归后,返回上一层)
(3.2)将2从y移到z(67本层最大圆盘移完,移辅塔上的递归层)
(3.3)将1从x移到z(1239最内侧递归后,返回上一层)
(四、)具体执行递归层栈的分配如下:
进入第一层,进入主程序
(1.)进入第二层,将1,2从x移到y:
(1.1)进入第三层,将1从x移到z
(1.2)从第三层退回到第二层,在第二层,将2从x移到y
(1.3)从第二层进入第三层,在第三层,将1从z移到y
(2)退回第二层,退回第一层,将3从x移到z
(3)进入第二层,将1,2从y移到z,x为辅助:
(3.1)进入第三层,将1从y移到x
(3.2)从第三层退回到第二层,在第二层,将2从y移到z
(3.3)从第二层进入第三层,在第三层,将1从x移到z
退回到第二层
退回到第一层,回主程序