【文件属性】:
文件名称:递归实现汉诺塔
文件大小:20KB
文件格式:TXT
更新时间:2020-12-26 14:13:39
汉诺塔 递归
guide:
1、此程序为汉诺塔程序(此代码用到递归,包括直接递归和间接递归(间接递归是用在了重复使用本程序那块));
2、此程序的代码流程是,由main函数进入之后,先后调用的函数是由上至下定义的;
3、亲爱的朋友,请尊重偶的版权,你也会得到相应的尊重哦!
4、若此程序或代码有不足或不对的地方,还望得到指正!
5、循环虽然比递归算法快,但比较而言,递归更容易让人理解!
purpose:
1、培养独立思考算法的能力,特别是递归时,用到的是数学中的数列,找到整个递归的最先出栈的函数,以及数列的第n项与第n-1项的关系就能用递归解决问题;
2、通过试数来推算自己的程序逻辑是否有beg,并找出修复之;
3、熟练一下结构体和链表的基本推理,尤其是插入和删除元素时指针的走向!
function:
1、简易输出汉诺塔步骤(由哪根柱子移到哪根柱子);
2、详细输出汉诺塔步骤(在功能1基础上逐步输出每次移动之后的盘子分布);
3、二维详细输出汉诺塔步骤(在前2功能基础上逐步输出二维盘子分布图);
4、动态二维输出汉诺塔步骤(在前3功能基础上演示动态输出并提示下一步);
5、可重复使用本程序!
在VC++6.0中的输出结果是:
---------------------------
…………
开始移动:
第1次移动过程:
A(1号盘)→B
此时灰原の盘子分布图:
A柱子 B柱子 C柱子
↓ ↓ ↓
1层为空层
第2层: 2* 1*
请按任意键继续. . .
第2次移动过程:
A(2号盘)→C
此时灰原の盘子分布图:
A柱子 B柱子 C柱子
↓ ↓ ↓
1层为空层
第2层: 1* 2*
请按任意键继续. . .
第3次移动过程:
B(1号盘)→C
此时灰原の盘子分布图:
A柱子 B柱子 C柱子
↓ ↓ ↓
第1层: 1*
第2层: 2*
请按任意键继续. . .
请问您是否要继续重玩游戏,需要重玩请按“Y”,否则按“N”结束程序!
…………
---------------------------