汉诺塔问题的分析及代码


2019-10-16做些补充:

其实很简单,有n个盘子,3个柱子,无非就是把n-1个盘子先借助目标柱放到temp柱上,把n从起始柱,挪到目标柱,最后再把n-1个盘子从temp柱,借助起始柱,挪到目标柱上。


以下为原答案:


汉诺塔是一个很有名的益智游戏也是个常见的递归算法的例子。

(说明:下面所述均为参考鱼C工作室的小甲鱼数据结构与算法的课程之后自己所写)

问题描述:

如图有三个盘子针,分别为X、Y、Z。

我们要做的事是:将64个盘子从X针移到Z针。(盘子们肯定是在三个针上来回移动从而达到目的)

要求:每次只能移动一个盘子;

           小的盘子必须放在比它大的盘子之上。


 

抽象一下整体的思路(分为三步):

步骤一:把63个较小的盘子从X针挪到Y针(挪动期间保证小盘在上大盘在下);

步骤二:把第64个也就是最大的盘子挪到Z针;

步骤三:把Y针上的63个盘子挪到Z针上。


但是上述的步骤

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值