您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页数据结构实验报告汉诺塔

数据结构实验报告汉诺塔

来源:意榕旅游网


实验报告书

课程名: 数据结构

题 目: 汉诺塔 班 级:

学 号: 姓 名:

评语: 成绩: 指导教师: 批阅时间: 年 月 日 《 数据结构 》实验报告 - 1 -

一、目的与要求

1)掌握栈与队列的数据类型描述及特点;

2)熟练掌握栈的顺序和链式存储存表示与基本算法的实现; 3)掌握队列的链式存储表示与基本操作算法实现; 4) 掌握栈与队列在实际问题中的应用和基本编程技巧;

4)按照实验题目要求独立正确地完成实验内容(提交程序清单及相关实验数据与运行结果); 5)认真书写实验报告,并按时提交。

二、实验内容或题目

汉诺塔问题。程序结果:给出程序执行过程中栈的变化过程与圆盘的搬动状态。

三、实验步骤与源程序

源程序:

/ *编译环境Visual C++6.0 */ #include \"stdafx.h\" #include #include

void move(int h,char c,char f) {

printf(\"%d:%c--->%c\\n\}

void hanoi(int n,char x,char y,char z) {

if(n==1) move(1,x,z); else {

hanoi(n-1,x,z,y); move(n,x,z);

hanoi(n-1,y,x,z); } }

void main(void) {

int flag; do {

printf(\" 汉诺塔问题\\n\\n\"); printf(\"[1] 开始\\n\"); printf(\"[2] 退出\\n\"); printf(\"1--2请选择:\"); scanf(\"%d\ printf(\"\\n\"); switch(flag) {

case 1:

《 数据结构 》实验报告 - 2 -

}

printf(\"输入盘子的总数:\"); int total;

scanf(\"%d\ printf(\"移动步骤:\\n\"); hanoi(total,'A','B','C'); break; case 2:

printf(\"确认退出吗!Y/N:\"); char temp; cin>>temp;

if(temp=='Y'||temp=='y') {

flag=3;

printf(\"谢谢使用!\\n\\n\"); }

break; default:

printf(\"您的选择超出范围,1--2请选择!\\n\"); }

printf(\"\\n\\n\\n\"); }while(flag!=3);

四、测试数据与实验结果

图1 输入盘子总数

《 数据结构 》实验报告 - 3 -

图2 移动步骤

《 数据结构 》实验报告 - 4 -

图3 程序退出

五、结果分析与实验体会

在运行程序时要注意头文件的使用,掌握栈与队列的数据类型描述及特点,以及栈的顺序和链式存储存表示与基本算法的实现。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务