1、 数据结构课程设计报告数据结构课程设计报告 汉诺塔问题汉诺塔问题 题目题目:_ 计算机科学与技术计算机科学与技术 111 班班 班级班级:_ * 姓名姓名:_ * 学号学号:_ 2013/6/27 完成日期完成日期:_ 目录目录 一、一、课程设计概述:课程设计概述: 1 二、课程设计目的二、课程设计目的 1 三、问题描述三、问题描述 1 四、需求分析四、需求分析 1 五五、概要设计、概要设计 1 六六、详细设计、详细设计 1 七、存储结构七、存储结构 4 八、八、调试分析调试分析 4 九、九、运行结果界面以及析运行结果界面以及析 6 十、流程图十、流程图 9 十一、设计心得十一、设计心得 9
2、十二、参考文献十二、参考文献 10 1 一、课程设计概述:一、课程设计概述: 本次课程设计内容主要包括进栈出栈和初始化栈与递归函数的自我调用。 使用语言:C 编译环境:Microsoft visual c+ 6.0 二、课程设计目的二、课程设计目的 课程设计是课程教学必不可缺的一个重要环节, 它可加深学生对课程所学内容的 进一步的理解与巩固,是将计算机课程与实际问题相联接的关键步骤。通过课程 设计,能够提高学生分析问题、解决问题,从而运用所学知识解决实际问题的能 力,因而必须给予足够的重视。 三、问题描述三、问题描述: 汉诺塔问题 有 A,B,C,三根柱子,开始时 A 柱子有 1n个圆环,它们
3、是按照从小到大的顺 序放在 A 柱子上,将 A 柱子上所有圆环通过 B 柱子,移动到 C 柱子上,要求小圆 环只能在大圆环的上面,实现移动的步骤: 四、需求分析四、需求分析 1、通过键盘输入圆盘的个数。 2、任何时刻都不能将一个较大的圆盘压在较小的圆盘上面。 3、运用所了解的知识,对 InitStack、Push、Pop、Hanoi 中各个函数进行实现, 构建相应的函数。Main函数实现函数的调用,Move 函数实现输出,Hanoi函数 调用 Move 函数实现移动和最终输出。 4、界面布局美观。 五、概要设计五、概要设计 void Move(SqStack /*汉诺塔的移动步骤*/ int
4、Hanoi(int n,SqStack /*汉诺塔的操作*/ void InitStack(SqStack /*初始化栈,构建栈*/ int Push(SqStack /*进栈*/ int Pop(SqStack /*出栈*/ 六、详细设计六、详细设计 #include 2 #include #define MaxSize 30 typedef struct int dataMaxSize; char name; int top; *SqStack,Han; void Move(SqStack /*汉诺塔的移动步骤*/ int Hanoi(int n,SqStack /*汉诺塔的操作*/ void InitStack(SqStack /*初始化栈*/ int Push(SqStack /*进栈*/ int Pop(SqStack /*出栈*/ void main() printf(“*n“); printf(“* 有三根柱子 A,B,C,开始时 A柱子有 1n 个圆环,它们