1 / 6
文档名称:

栈结构实现汉诺塔实验报告样稿.doc

格式:doc   大小:19KB   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

栈结构实现汉诺塔实验报告样稿.doc

上传人:读书百遍 2020/11/26 文件大小:19 KB

下载得到文件列表

栈结构实现汉诺塔实验报告样稿.doc

文档介绍

文档介绍:数 据 结 构




学 院 软件学院
年 级 级
班 级 班
学 号
姓 名
年 3 月 24 日
目录
一、试验内容……………………………………….1
二、试验过程……………………………………….X
三、试验结果……………………………………….X

一、试验内容:
1、试验题目:栈结构实现汉诺塔
2、试验要求:有三个柱子A、B、C,A柱子上叠放有n个盘子,每个盘子全部比它下面盘自己小一点,要求借助柱子B,将柱子A上全部盘子移动到柱子C上。要求一次只能移动一个盘子,且移动过程中大盘子不能放在小盘子上面,只能小盘子放在大盘子上面。
3、试验目标:了解并掌握栈结构原理和基础操作,并用利用栈结构实现汉诺塔。了解递归工作过程。
二、试验过程:
1、任务分配
2、设计思想
(1)将A柱子上n-1个盘子借助C柱子移到B柱子上,把A上剩下一个盘子移到C上,将B上n-1个盘子借助A移到C上
(2)建立三个栈作为汉诺塔,利用栈结构“优异后出”特点,优异栈盘子要后出来
3、需求分析
  (1) 输入形式和输入值范围:输入盘子个数n
  (2) 输出形式:盘子移动过程及最终移动总次数
  (3) 程序所能达成功效:将A上n个盘子借助B移到C上
  (4) 测试数据:
4、概要设计
1).抽象数据类型
2).算法
:用来作为汉诺塔存入和去除圆盘,优异栈圆盘后出来
:建立汉诺塔模型(将A上n个盘子借助B移到C上)
其中move函数用于实现圆盘移动
:接收处理命令(初始化数据)
5、具体设计
程序代码(含注释)
6、调试分析
(1)调试中问题分析:
,开始使用是void,不过和后面main函数中定义i类型不相符,且void函数无法返值,最终改为int型
算法时空分析:
:程序所花时间正比于所输出信息行数目,而信息行数目等价于盘子移动次数,盘子移动数目为move(n),所以函数时间复杂度为O(move(n))
:3座塔在任何时候总共拥有盘子个数全部是n个,依据栈结