C语言程序设计(第2版)李学刚教学资源教学课件5-11汉诺塔问题.pptxVIP

C语言程序设计(第2版)李学刚教学资源教学课件5-11汉诺塔问题.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
主讲人:刘斌汉诺塔问题递归函数的应用问题1:古代有一个梵塔,塔内有三个柱A、B、C,A柱上有64个盘子,盘子大小不等,大的在下,小的在上(如图5-15)。有一个和尚想把这64个盘子从A柱移到C柱,但每次只能允许移动一个盘子,并且在移动过程中,3个柱上的盘子始终保持大盘在下,小盘在上。在移动过程中可以借助B柱,要求打印移动的步骤。初始时,只有A柱上有盘,目的就是通过B柱移动到C柱上。ABC首先对该问题进行分析,分析结论如下:对于n个盘子的汉诺塔,设从上到下n个盘子的编号分别为1,2,…,n,三根柱分别叫做起始柱,目标柱和辅助柱。当n等于1时可以直接由起始柱移动到目标柱。当n1时显然不能直接移动,此时可以把起始柱上最上面的n-1个盘子看作是一个逻辑盘,最下面的一个盘子看作是物理盘。02递归函数的应用03只需要下面三步就可以完成任务了。ABC递归函数的应用04递归关系可表示为:1.把A柱上的前n-1个盘子借助C柱移到B柱,即Hanoi (n-1,A,C,B)。2.把第n号盘子从A柱移到C柱,即Print (n,A,C)。3.把B柱上的n-1个盘子借助A柱移到C柱,即Hanoi (n-1,B,A,C)。(12) Hanoi(n-1,C,B,A);(13) }(14)}(15)int main()(16){(17) int n;(18) printf(请输入汉诺塔盘子个数:\n);(19) scanf(%d,n);(20) Hanoi(n,A,B,C); printf(%d\n,sum);(21) return 0;(22)}递归函数的应用05(1)#include stdio.h(2)void Hanoi(int n,char A,char B,char C) (3){(4) if(n==1)(5) {(6) printf(将 %d 号盘子从 %c 柱移动到 %c 柱\n,n,A,B);(7) }(8) else(9) {(10) Hanoi(n-1,A,C,B);(11) printf(将 %d 号盘子从 %c 柱移动到 %c 柱\n,n,A,B);⑵⑶⑴⑷H(3,A,B,C){ H(2,A,C,B); P(3,A,B); H(2,C,B,A);}?⑸⑹⑺⑻⑼⑿⑽⑾H(1,A,B,C){ P(1,A,B);}H(1,C,A,B){ P(1,C,A);}H(1,B,C,A){ P(1,B,C);}H(1,A,B,C){ P(1,A,B);}H(2,C,B,A){ H(1,C,A,B); P(2,C,B); H(1,A,B,C);}????H(2,A,C,B){ H(1,A,B,C); P(2,A,C); H(1,B,C,A);}??递归函数的应用06调用和回代过程下面以n=3为例说明调用回代过程,如PPT所示。图中可以看到用H(n-1,A, B, C)代替Hanoi (n-1,A, B, C),用P (n,A,B)代替Print (n,A,B),课堂实践对给定的函数void P(int w),画出当w=3时p(3)的调用和回代图,并给出P(3)的输出结果。void P(int w){ if(w0) { P(w-1); printf(%4d,w); P(w-1); }}07再 见

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档