正在阅读:C++数据结构学习:递归(2.2)C++数据结构学习:递归(2.2)

2004-02-14 09:34 出处:PConline 作者:happycock/CSDN 责任编辑:linjixiong
3号盘子的目标柱是C,但是已经有了1号盘子,我们最直觉的反映就是——将碍事的盘子搬到另一根柱子上面去。于是,我们要做的是(规律2):保存当前柱的信息(柱子号、应该搬动的最下面一块盘子的号,和它的目标柱),以备当障碍清除后回到现在的柱子继续搬,将当前柱转换为碍事的盘子所在的柱子。假设这样若干步后,我们将7号盘子从A搬到了C,此时,保存当前柱号的栈一定是空了,我们该怎么办呢?

  显而易见的,转换当前柱为B,把6号盘子搬到C。由此可得出(规律3):假设当前的问题规模为n,搬动第n个盘子到C后,问题规模减1,当前柱转换到另一个柱子,最下面的盘子的目标柱为C。
键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品