汉诺塔问题实验报告(共6页).doc





《汉诺塔问题实验报告(共6页).doc》由会员分享,可在线阅读,更多相关《汉诺塔问题实验报告(共6页).doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上1.实验目的:通过本实验,掌握复杂性问题的分析方法,了解汉诺塔游戏的时间复杂性和空间复杂性。2.问题描述: 汉诺塔问题来自一个古老的传说:在世界刚被创建的时候有一座钻石宝塔(塔A),其上有64个金碟。所有碟子按从大到小的次序从塔底堆放至塔顶。紧挨着这座塔有另外两个钻石宝塔(塔B和塔C)。从世界创始之日起,婆罗门的牧师们就一直在试图把塔A上的碟子移动到塔C上去,其间借助于塔B的帮助。每次只能移动一个碟子,任何时候都不能把一个碟子放在比它小的碟子上面。当牧师们完成任务时,世界末日也就到了。3.算法设计思想:对于汉诺塔问题的求解,可以通过以下三个步骤实现:(1)将塔A上的n
2、-1个碟子借助塔C先移到塔B上。(2)把塔A上剩下的一个碟子移到塔C上。(3)将n-1个碟子从塔B借助于塔A移到塔C上。4.实验步骤:1. 用c+ 或c语言设计实现汉诺塔游戏;2. 让盘子数从2 开始到7进行实验,记录程序运行时间和递归调用次数;3. 画出盘子数n和运行时间t 、递归调用次数m的关系图,并进行分析。5.代码设计:Hanio.cpp#include stdafx.h#include #include #include void hanoi(int n,char x,char y,char z) if(n=1) printf(从%c-搬到%cn,x,z); else hanoi(n
3、-1,x,z,y);printf(从%c-%c搬到n,x,z);hanoi(n-1,y,x,z); void main() int m ; printf(input the number of diskes:); scanf(%d,&m); printf(The step to moving %3d diskes:,m); hanoi(m,a,b,c);自定义头文件:#pragma once#include targetver.h#include #include 结果如下: 6.递归应用中的Hanoi塔问题分析1)Hanoi塔问题中函数调用时系统所做工作一个函数在运行期调用另一个函数时,在运
4、行被调用函数之前,系统先完成3件事:将所有的实参、返回地址等信息传递给被调用函数保存。为被调用函数的局部变量分配存储区;将控制转移到被调用函数的入口。从被调用函数返回调用函数前,系统也应完成3件事:保存被调用函数的结果;释放被调用函数的数据区;依照被调用函数保存的返回地址将控制转移到调用函数。当有多个函数构成嵌套调用时,按照“后调用先返回”的原则(LIFO),上述函数之间的信息传递和控制转移必须通过“栈”来实现,即系统将整个程序运行时所需的数据空间安排在一个栈中,每当调用一个函数时,就为其在栈顶分配一个存储区,每当从一个函数退出时,就释放其存储区,因此当前运行函数的数据区必在栈顶。堆栈特点:L
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汉诺塔 问题 实验 报告

限制150内