资源描述
实 验 报 告
实验课程:
学生姓名:
学 号:
专业班级:
2015年 2 月 25 日
目 录
实验1 线性表 3
实验2 栈与队列 4
实验3 串 5
实验4 数组与广义表 6
实验5 二叉树的操作 7
实验 6 图 8
实验7 查找的操作 9
实验8 排序的操作 10
综合性实验(数据结构课程设计) 11
南昌大学实验报告
学生姓名: 学 号: 专业班级:
实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 2011-10-10 实验成绩:
实验1 线性表
一.实验目的
1. 熟悉线性表抽象数据类型的表示和实现方法。
2. 掌握线性表上的基本操作。
二.实验基本原理
IDE环境中进行C程序开发的基本过程
三.主要仪器设备及耗材
PC微型计算机系统
DOS操作系统或 Windows 操作系统
Turbo C 集成开发环境、Visual C++ 开发环境、或其它C语言开发环境。
四.实验步骤
1. 进入所选择的IDE环境。
2. 书写程序源代码。
3. 调试程序。
4. 验证程序。
五.实验项目
实验课题:
编程实现一元多项式的表示及加法运算。
(要求给出算法、流程图、运行结果的屏幕截图,源程序电子打包提交)
六.思考讨论题或体会或对改进实验的建议
总结实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。
七.参考资料
《数据结构习题集》(C语言版) 严蔚敏 吴伟民 编著 清华大学出版社
《C程序设计题解与上机指导》(第三版) 谭浩强编著 清华大学出版社
南昌大学实验报告
学生姓名: 学 号: 专业班级:
实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 2011-10-17 实验成绩:
实验2 栈与队列
一.实验目的
3. 熟悉栈与队列抽象数据类型的表示和实现方法。
4. 掌握栈与队列的基本操作。
二.实验基本原理
IDE环境中进行C程序开发的基本过程
三.主要仪器设备及耗材
PC微型计算机系统
DOS操作系统或 Windows 操作系统
Turbo C 集成开发环境、Visual C++ 开发环境、或其它C语言开发环境。
四.实验步骤
5. 进入所选择的IDE环境。
6. 书写程序源代码。
7. 调试程序。
8. 验证程序。
五.实验项目
实验课题:
1.采用顺序存储实现栈的初始化、入栈、出栈操作
2.采用顺序存储实现循环队列的初始化、入队、出队操作。
(要求给出算法、流程图、运行结果的屏幕截图,源程序电子打包提交)
六.思考讨论题或体会或对改进实验的建议
总结实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。
七.参考资料
《数据结构习题集》(C语言版) 严蔚敏 吴伟民 编著 清华大学出版社
《C程序设计题解与上机指导》(第三版) 谭浩强编著 清华大学出版社
南昌大学实验报告
学生姓名: 学 号: 专业班级:
实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 2011-10-24 实验成绩:
实验3 串
一.实验目的
5. 理解串的模式匹配算法(包括KMP算法)。
6. 明确串也是特殊的线性表,掌握其特殊性所在。
二.实验基本原理
IDE环境中进行C程序开发的基本过程
三.主要仪器设备及耗材
PC微型计算机系统
DOS操作系统或 Windows 操作系统
Turbo C 集成开发环境、Visual C++ 开发环境、或其它C语言开发环境。
四.实验步骤
9. 进入所选择的IDE环境。
10. 书写程序源代码。
11. 调试程序。
12. 验证程序。
五.实验项目
实验课题:
实现串的模式匹配的暴力算法和KMP算法
(要求给出算法、流程图、运行结果的屏幕截图,源程序电子打包提交)
六.思考讨论题或体会或对改进实验的建议
总结实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。
七.参考资料
《数据结构习题集》(C语言版) 严蔚敏 吴伟民 编著 清华大学出版社
《C程序设计题解与上机指导》(第三版) 谭浩强编著 清华大学出版社
南昌大学实验报告
学生姓名: 学 号: 专业班级:
实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 2011-10-31 实验成绩:
实验4 数组与广义表
一.实验目的
7. 掌握稀疏矩阵的表示方法及其运算的实现。
8. 实现稀疏矩阵在三元组、十字链表等表示下的各运算并分析其效率。
二.实验基本原理
IDE环境中进行C程序开发的基本过程
三.主要仪器设备及耗材
PC微型计算机系统
DOS操作系统或 Windows 操作系统
Turbo C 集成开发环境、Visual C++ 开发环境、或其它C语言开发环境。
四.实验步骤
13. 进入所选择的IDE环境。
14. 书写程序源代码。
15. 调试程序。
16. 验证程序。
五.实验项目
实验课题:
假设稀疏矩阵A和稀疏矩阵B都用三元组表示,编写一个函数计算:
C=A+B。
(要求给出算法、流程图、运行结果的屏幕截图,源程序电子打包提交)
六.思考讨论题或体会或对改进实验的建议
总结实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。
七.参考资料
《数据结构习题集》(C语言版) 严蔚敏 吴伟民 编著 清华大学出版社
《C程序设计题解与上机指导》(第三版) 谭浩强编著 清华大学出版社
南昌大学实验报告
学生姓名: 学 号: 专业班级:
实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 2011-11-14 实验成绩:
实验5 二叉树的操作
一.实验目的
9. 掌握二叉树的结构特征及存储结构特点。
10. 掌握二叉树的基本运算。
二.实验基本原理
IDE环境中进行C程序开发的基本过程
三.主要仪器设备及耗材
PC微型计算机系统
DOS操作系统或 Windows 操作系统
Turbo C 集成开发环境、Visual C++ 开发环境、或其它C语言开发环境。
四.实验步骤
17. 进入所选择的IDE环境。
18. 书写程序源代码。
19. 调试程序。
20. 验证程序。
五.实验项目
实验课题:
以二叉链表作存储结构,试编写程序实现按层次顺序遍历二叉树的算法。
(要求给出算法、流程图、运行结果的屏幕截图,源程序电子打包提交)
六.思考讨论题或体会或对改进实验的建议
总结实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。
七.参考资料
《数据结构习题集》(C语言版) 严蔚敏 吴伟民 编著 清华大学出版社
《C程序设计题解与上机指导》(第三版) 谭浩强编著 清华大学出版社
南昌大学实验报告
学生姓名: 学 号: 专业班级:
实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 2011-11-28 实验成绩:
实验6 图的操作
一.实验目的
1. 掌握图的基本存储方法。
2. 掌握有关图的操作算法并用高级语言编程实现;
3. 熟练掌握图的两种搜索路径的遍历方法。
二.实验基本原理
IDE环境中进行C程序开发的基本过程
三.主要仪器设备及耗材
PC微型计算机系统
DOS操作系统或 Windows 操作系统
Turbo C 集成开发环境、Visual C++ 开发环境、或其它C语言开发环境。
A
B
C
D
E
F
G
H
I
四.实验步骤
21. 进入所选择的IDE环境。
22. 书写程序源代码。
23. 调试程序。
24. 验证程序。
五.实验项目
实验课题:
以邻接矩阵或邻接表的方式存储无向图。
然后分别用二种算法遍历该图。
(要求给出算法、流程图、运行结果的屏幕截图,源程序电子打包提交)
六.思考讨论题或体会或对改进实验的建议
总结实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。
七.参考资料
《数据结构习题集》(C语言版) 严蔚敏 吴伟民 编著 清华大学出版社
《C程序设计题解与上机指导》(第三版) 谭浩强编著 清华大学出版社
南昌大学实验报告
学生姓名: 学 号: 专业班级:
实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 2011-12-5 实验成绩:
实验7 查找的操作
一.实验目的
4. 掌握查找的意义和基本方法。
5. 掌握有关查找的操作算法并用高级语言编程实现;
二.实验基本原理
IDE环境中进行C程序开发的基本过程
三.主要仪器设备及耗材
PC微型计算机系统
DOS操作系统或 Windows 操作系统
Turbo C 集成开发环境、Visual C++ 开发环境、或其它C语言开发环境。
四.实验步骤
25. 进入所选择的IDE环境。
26. 书写程序源代码。
27. 调试程序。
28. 验证程序。
五.实验项目
实验课题:
给定一组元素的关键字hash[]={23, 35, 12, 56, 123, 39, 342, 90}, 利用除留余数法和线性再散列法将元素存储在散列表中,并查找给定的关键字,求出平均查找长度。
(要求给出算法、流程图、运行结果的屏幕截图,源程序电子打包提交)
六.思考讨论题或体会或对改进实验的建议
总结实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。
七.参考资料
《数据结构习题集》(C语言版) 严蔚敏 吴伟民 编著 清华大学出版社
《C程序设计题解与上机指导》(第三版) 谭浩强编著 清华大学出版社
南昌大学实验报告
学生姓名: 学 号: 专业班级:
实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期:2011-12-12 实验成绩:
实验8 排序的操作
一.实验目的
6. 掌握排序的意义和基本方法。
7. 掌握有关排序的操作算法并用高级语言编程实现;
二.实验基本原理
IDE环境中进行C程序开发的基本过程
三.主要仪器设备及耗材
PC微型计算机系统
DOS操作系统或 Windows 操作系统
Turbo C 集成开发环境、Visual C++ 开发环境、或其它C语言开发环境。
四.实验步骤
29. 进入所选择的IDE环境。
30. 书写程序源代码。
31. 调试程序。
32. 验证程序。
五.实验项目
实验课题:
给定一组元素,其关键字序列为{56, 22, 67, 67, 32, 59, 12, 89, 26, 48, 37}, 利用简单选择排序算法和堆排序算法对该组元素进行排序。
(要求给出算法、流程图、运行结果的屏幕截图,源程序电子打包提交)
六.思考讨论题或体会或对改进实验的建议
总结实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。
七.参考资料
《数据结构习题集》(C语言版) 严蔚敏 吴伟民 编著 清华大学出版社
《C程序设计题解与上机指导》(第三版) 谭浩强编著 清华大学出版社
南昌大学实验报告
√
学生姓名: 学 号: 专业班级:
实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 实验成绩:
综合性实验(数据结构课程设计)
一、数据结构综合性实验要求
学生必须仔细阅读《数据结构》综合性实验方案,认真主动完成综合性实验的要求。
学生要发挥自主学习的能力,充分利用时间,安排好综合性实验的时间计划,并在综合性实验过程中不断检测自己的计划完成情况。
综合性实验按照教学要求在学期结束前完成。
二、数据结构综合性实验的具体内容
本次综合性实验完成如下项目(学生可以在其中至少挑选1个项目完成)
1. 运动会分数统计**
任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)
功能要求:1).可以输入各个项目的前三名或前五名的成绩;
2).能统计各学校总分,
3).可以按学校编号、学校总分、男女团体总分排序输出;
4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)
输出形式:有中文提示,各学校分数为整形
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;
测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;
2. 一元多项式计算
任务:能够按照指数降序排列建立并输出多项式;
能够完成两个多项式的相加、相减,相乘并将结果输入;
在上交资料中请写明:存储结构、多项式相加的基本过程的算法(可以使用程序流程图) 、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;
3. 订票系统
任务:通过此系统可以实现如下功能:
录入:
可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
查询:
可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);
可以输入起飞抵达城市,查询飞机航班情况;
订票:(订票情况可以存在一个数据文件中,结构自己设定)
可以订票,如果该航班已经无票,可以提供相关可选择航班;
退票: 可退票,退票后修改相关数据文件;
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:
当航班信息改变可以修改航班数据文件
要求:
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;
4. 迷宫求解
任务:可以输入一个任意大小的迷宫数据,用递归的方法求出一条走出迷宫的路径,并将路径输出;
要求:
在上交资料中请写明:存储结构、基本算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;
5. 文章编辑**
功能:输入一页文字,程序可以统计出文字、数字、空格的个数。
静态存储一页文章,每行最多不超过80个字符,共N行;要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。
存储结构使用线性表,分别用几个子函数实现相应的功能;
输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。
输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章;
6. joseph环
任务:编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。
要求:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。
测试数据:
m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么?
要求:
输入数据:建立输入处理输入数据,输入m的初值,n ,输入每个人的密码,建立单循环链表。
输出形式:建立一个输出函数,将正确的输出序列
7. 猴子选大王**
任务:一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
要求:
输入数据:输入m,n m,n 为整数,n<m
输出形式:中文提示按照m个猴子,数n 个数的方法,输出为大王的猴子是几号 ,建立一个函数来实现此功能
8. 建立二叉树,层序、先序遍历( 用递归或非递归的方法都可以)**
任务:
要求能够输入树的各个结点,并能够输出用不同方法遍历的遍历序列;分别建立建立二叉树存储结构的的输入函数、输出层序遍历序列的函数、输出先序遍历序列的函数;
9.赫夫曼树的建立
任务 :建立建立最优二叉树函数
要求:可以建立函数输入二叉树,并输出其赫夫曼树
在上交资料中请写明:存储结构、 基本算法(可以使用程序流程图) 、输入输出、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;
10. 纸牌游戏**
任务:编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次, 直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的 直到 以52为基数的 翻过,输出:这时正面向上的牌有哪些?
11.图的建立及输出
任务:建立图的存储结构(图的类型可以是有向图、无向图、有向网、无向网,学生可以任选两种类型),能够输入图的顶点和边的信息,并存储到相应存储结构中,而后输出图的邻接矩阵。
要求:
12.拓扑排序
任务:编写函数实现图的拓扑排序。
13. 各种排序
任务:用程序实现插入法排序、起泡法改进算法排序;
利用插入排序和冒泡法的改进算法,将用户随机输入的一列数按递增的顺序排好。
输入的数据形式为任何一个正整数,大小不限。
输出的形式:数字大小逐个递增的数列。
14.简单通讯录.
任务要求:编制一个包含姓名、地址、邮政编码和电话的简单通讯录,实现通讯录的输入、输出、删除、查找、显示、排序等基本功能。
15.图书管理信息系统的的设计与实现
任务要求:设计一个简单图书管理信息系统,实现图书采编、编目、查询及图书的借还等系统功能。
13---13
展开阅读全文