- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
l一一教 囝零一_1…Com—pute—r Ed~ucation一 《
文章编号:1672—5913(2008)04—0075—03
汉诺塔算法的多媒体课件设计
刘志红
(天津师范大学 管理学院,天津 300387)
摘 要:程序设计中的一些典型的非线性算法一直都是学生理解和教师讲授的难点,它的多媒体课
件的制作自然也就是一个具有挑战性的课题。本文以汉诺塔算法的多媒体课件设计为例,从一个侧
面展示这个解决过程。
关键词:汉诺塔算法;综合课程改革;多媒体课件
中图分类号:G642 文献标识码:B
l 汉诺塔问题求解方法与二叉树中序 最后把第 1个盘子从 B直接搬到 C,即((1),B,C)。序列
遍历 ((1),A,B),((2),A,C),((1),B,C)正好是以(2,A,B,C)为根,以
(1,A,C,B)和(1,B,A,C)为左右孩子的二叉树的中序遍历序列
(访问结点时,去掉过渡位置,盘子数加括号)(见图1),其
n阶汉诺塔问题:有三根石柱,在一根石柱上放着n
中双亲结点与左孩子的关系是,盘子个数减 1,过渡位置
个盘子,每个盘子都比它下面的小,遵循以下规则,把盘
和终止位置交换,与右孩子的关系是,盘子个数减 1,起
子移到另一根柱子上:
始位置和过渡位置交换。
(1)每次只能移动一个盘子。
(2)盘子可以放在任一根柱子上。 (2,A,B,C)
(3)任何时刻,大盘不能压在小盘之上。
/ \
下面用归纳法证明n阶汉诺塔问题可以用n层二叉树
(1,A,C,B) (1,B,A,C)
描述,而且它的解就是该二叉树的中序遍历序列。
用一个四元组(n,A,B,C)表示把n个盘子从A搬到C,
图 1 2阶汉诺塔问题状态树
中间可以借助B的n阶汉诺塔问题。其中A、B、C的地
位是相对的,第一个表示起始位置,最后一个表示终止位 假设有n个盘子时,结论成立。现在假设有n+1个盘
置,中间表示过渡位置。例~ll(n,B,A,C)表示把n个盘子从 子。要把n+1个盘子从A搬到C,即(n+1,A,B,C),必须
B搬到C,中间可以借助A的n阶汉诺塔问题。用一个三 先把前n个盘子从A搬到B,即(n,A,C,B),然后把第n+1个
元组((n),A,B)表示把第n个盘子从A直接搬到B。 盘子从A直接搬到C,I~lJ((n+1),A,C),最后把前n个盘子
假设有两个盘子,要把两个盘子从 A 搬到 C,即 从 B搬到 C,即(n,B,A,C)。序列(n,A,C,B),((n+1),A,C),
(2,A,B,C),就必须先把第 1个盘子从 A直接搬到 B,即 (n,B,A,C)正好是 以(n+l,A,B,C)为根 ,以(n,A,C,B)和
(n,B,A,C)为左右孩子的二叉树的中序遍历顺序(中序遍历
((1),A,B),再把第2个盘子从A直接搬到C,即
文档评论(0)