汉诺塔(hanoi) c语言第五版谭浩强递归内部流程图

这张图看懂了就基本明白了,个人认为比较能够描述出代码逻辑

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
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”结束程序! ………… ---------------------------

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值