河内四层塔楼15分步解决方案
算法步骤
解决三阶汉诺塔问题的步骤
* * *需要7个步骤。
解决四阶汉诺塔问题的步骤
* * *需要15步
解决五阶汉诺塔问题的步骤
该算法采用分而治之的思想,用递归的方法完成汉诺塔N层的移动。
汉诺塔问题的非递归算法
汉诺塔问题也可以用非递归算法求解。有许多非递归算法来解决汉诺塔问题。博主认为最常见的是使用递归二叉树。这里有两个非递归算法。
1.使用二叉递归树
文献[4]指出汉诺塔问题的递归算法代码与二叉树的中序遍历算法代码非常相似,于是采用二叉树的中序遍历,发现汉诺塔问题的算法步骤可以画成一棵完整的二叉树,其中的序遍历过程就是汉诺塔问题的算法步骤。
函数移动(N-1,s,e,t)?n:多少个盘子?,s:起始堆e:目标堆t:过渡堆