《数据结构》实验教案叶双.docx
- 文档编号:12898960
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:14
- 大小:38.46KB
《数据结构》实验教案叶双.docx
《《数据结构》实验教案叶双.docx》由会员分享,可在线阅读,更多相关《《数据结构》实验教案叶双.docx(14页珍藏版)》请在冰豆网上搜索。
《数据结构》实验教案叶双
数据结构课程实验教案
第1页
实验题目:
线性表及其应用
约瑟夫环
机时安排
4小时
实验时间
第4-5周
实验目的:
帮助学生熟练掌握线性表的基本操作在顺序和链式两种存储结构上的实现,其中以各种链表的操作和应用作为重点内容。
实验内容:
1、问题描述:
约瑟夫问题的一种描述为,编号为1,2,3,……n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。
一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。
报m的人出列,将他的密码作为新的m的值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有的人全部出列为止。
试设计一个程序求出出列顺序。
2、基本操作:
利用单向循环链表存储结构模拟此过程,按照出列的顺序印出各人的编号。
3、测试数据:
m的初值为20;n=7,7个人的密码依次为:
3,1,7,2,4,8,4,首先m值为6(正确的出列顺序应为6,1,4,7,2,3,5)。
4、实现提示:
程序运行后,首先要求用户指定初始报数上限值,然后读取各人的密码。
可设n≤30。
此题所用的循环链表中不需要“头结点”,请注意空表和非空表的界限。
5、选作内容:
集合的并、交、差运算。
参考资料(含参考书、文献等):
《数据结构题集》(C语言版)严蔚敏 吴伟民清华大学出版社1999.2
教学过程设计:
复习分钟,授新课 分钟,安排讨论分钟,布置作业分钟,其他分钟
授课类型(请打√):
理论课□讨论课□实验课□练习课□其他□
教学方式(请打√):
讲授□讨论□示教□指导□其他□
教学资源(请打√):
多媒体□模型□实物□挂图□音像□其他□
填表说明:
1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。
数据结构课程实验教案
第2页
实验题目:
栈和队列及应用
迷宫问题
机时安排
4小时
实验时间
第6-7周
实验目的:
使学生深入了解栈和队列的特性,以便在实际问题背景下灵活运用它们,同时还将巩固对这两个结构的构造方法的掌握及基本操作的实现。
实验内容:
1、问题描述:
以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。
设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得到没有通路的结论。
2、基本要求:
首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。
求得的通路以三元组(i,j,d)的形式输出,其中:
(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。
如:
对于下列数据的迷宫,输出的一条通路为:
(1,1,1),(1,2,2),(2,2,2),(3,2,3),(3,1,2)…
3、测试数据:
迷宫的测试数据如下:
左下角(1,1)为入口,右下角(8,9)为出口。
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
4、实现提示:
计算机解迷宫通常用的是“穷举求解”方法,即从入口出发,顺着某一个方向进行探索,若能走通,则继续前进;否则沿着原路退回,换一个方向继续探索,直至出口位置,求得一条通路。
假如所有可能的通路都探索到而未能到达出口,则所设定的迷宫没有通路。
可以二维数组存储迷宫数据,通常设定入口点的下标为(1,1),出口点的下标为(n,n)。
为处理方便起见,可在迷宫的四周加一圈障碍。
对于迷宫中任一位置,均可约定有东、南、西、北四个方向可通。
5、选作内容:
算术表达式求值。
参考资料(含参考书、文献等):
《数据结构题集》(C语言版)严蔚敏 吴伟民清华大学出版社1999.2
教学过程设计:
复习分钟,授新课 分钟,安排讨论分钟,布置作业分钟,其他分钟
授课类型(请打√):
理论课□讨论课□实验课□练习课□其他□
教学方式(请打√):
讲授□讨论□示教□指导□其他□
教学资源(请打√):
多媒体□模型□实物□挂图□音像□其他□
填表说明:
1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。
数据结构课程实验教案
第3页
实验题目:
树及其应用
1、二叉树的遍历
机时安排
2小时
实验时间
第9周
实验目的:
使学生深入了解并掌握非线性数据结构的特点,掌握创建二叉树二叉链表存储结构的方法;同时深刻理解二叉树的各遍历过程。
实验内容:
1、问题描述:
很多涉及二叉树的操作的算法都是以二叉树的遍历操作为基础的。
编写程序,对一棵给定的二叉树进行先、中、后三种次序的遍历。
2、基本要求:
以二叉链表为存储结构,实现二叉树的先、中、后三种次序的递归和非递归遍历。
3、测试数据:
以教科书图6.9的二叉树为例。
4、实现提示:
(1)、设二叉树的结点不超过30个,且每个结点的数据均为字符,这样可利用先序遍历序列作为输入顺序创建二叉树链表存储结构。
(2)、也可利用完全二叉树在顺序存储中的特性,创建二叉树的存储结构,此时,二叉树中结点数据的类型不受限制。
5、选作内容:
(1)、借助队列,实现二叉树的层序遍历。
(2)、按凹入表或树形打印所遍历的二叉树。
参考资料(含参考书、文献等):
《数据结构题集》(C语言版)严蔚敏 吴伟民清华大学出版社1999.2
教学过程设计:
复习分钟,授新课 分钟,安排讨论分钟,布置作业分钟,其他分钟
授课类型(请打√):
理论课□讨论课□实验课□练习课□其他□
教学方式(请打√):
讲授□讨论□示教□指导□其他□
教学资源(请打√):
多媒体□模型□实物□挂图□音像□其他□
填表说明:
1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。
数据结构课程实验教案
第4页
实验题目:
期中考试
机时安排
2小时
实验时间
第10周
实验目的:
通过上机考试了解学生半学期以来对所讲授知识的掌握程度,并在后半学期针对性地进行教学。
实验内容:
考查学生对二叉树应用问题的解答能力和实际编程能力。
采用现场公布题目,现场设计编程调试,现场打分的原则。
参考资料(含参考书、文献等):
《数据结构题集》(C语言版)严蔚敏 吴伟民清华大学出版社1999.2
教学过程设计:
复习分钟,授新课 分钟,安排讨论分钟,布置作业分钟,其他分钟
授课类型(请打√):
理论课□讨论课□实验课□练习课□其他□
教学方式(请打√):
讲授□讨论□示教□指导□其他□
教学资源(请打√):
多媒体□模型□实物□挂图□音像□其他□
填表说明:
1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。
数据结构课程实验教案
第5页
实验题目:
树及其应用
2、哈夫曼编码
机时安排
3小时
实验时间
第11-12周
实验目的:
树和二叉树是一类应用极为广泛的数据结构。
通过本次实验使学生不仅了解树和二叉树的结构特性及其基本操作的实现过程,同时掌握他们在实际问题背景下的应用。
实验内容:
1、问题描述:
利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。
但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。
对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。
试为这样的信息收发站写一个哈夫曼码的编/译码系统。
2、基本要求:
一个完整的系统应具有以下功能:
(1)、I:
初始化(Initialization)。
从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。
(2)、E:
编码(Encoding)。
利用以建好的哈夫曼树(如不在内存,则从文件hfmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。
(3)、D:
译码(Decoding)。
利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。
(4)、P:
印代码文件(Print)。
将文件CodeFile以紧凑格式显示在终端上,每行50个代码。
同时将此字符形式的编码文件写入文件CodePrin中。
(5)、T:
印哈夫曼树(Treeprinting)。
将已在内存中的哈夫曼树以直观的方式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint中。
3、测试数据:
见上机指导书P149测试数据。
4、实现提示:
(1)、文件CodeFile的基类型可以设为子界型bit=0‥1。
(2)、用户界面可以设计为“菜单”方式:
显示上述功能符号,再加上“Q”,表示退出运行Quit。
请用户键入一个选择功能符。
此功能执行完毕后再显示此菜单,直至某次用户选择了“Q”为止。
(3)、在程序的一次执行过程中,第一次执行I,D或C命令之后,哈夫曼树已经在内存了,不必读入。
每次执行中不一定执行I命令,因为文件hfmTree可能早已建好。
参考资料(含参考书、文献等):
《数据结构题集》(C语言版)严蔚敏 吴伟民清华大学出版社1999.2
教学过程设计:
复习分钟,授新课 分钟,安排讨论分钟,布置作业分钟,其他分钟
授课类型(请打√):
理论课□讨论课□实验课□练习课□其他□
教学方式(请打√):
讲授□讨论□示教□指导□其他□
教学资源(请打√):
多媒体□模型□实物□挂图□音像□其他□
填表说明:
1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。
数据结构课程实验教案
第6页
实验题目:
图及其应用
图的遍历
机时安排
3小时
实验时间
第12-13周
实验目的:
使学生深入了解图结构的特点,掌握创建图的各种存储结构的方法;同时深刻理解图的dfs和bfs遍历过程。
实验内容:
1、问题描述:
很多涉及图上操作的算法都是以图的遍历操作为基础的。
试写一个程序,演示在连通的无向图上访问全部结点的操作。
2、基本要求:
以邻接表为存储结构,实现连通无向图的深度优先和广度优先遍历。
以用户指定的结点为起点,分别输出每种遍历下的结点访问序列和相应生成树的边集。
3、测试数据:
教科书图7.33。
暂时忽略里程,起点为北京。
4、实现提示:
设图的结点不超过30个,每个结点用一个编号表示(如果一个图有n个结点,则它们的编号分别为1,2,…,n)。
通过输入图的全部边输入一个图,每个边为一个数
对,可以对边的输入顺序作出某种限制,注意,生成树的边是有向边,端点顺序不能颠倒。
5、选作内容:
(1)、借助于栈类型(自己定义和实现),用非递归算法实现深度优先遍历。
(2)、以邻接表为存储结构,建立深度优先生成树和广度优先生成树,再按凹入表或树形打印生成树。
(3)、正如习题7.8提示中所分析的那样,图的路径遍历要比结点遍历具有更为广泛的应用。
再写一个路径遍历算法,求出从北京到广州中途不过郑州的所有简单路径及其里程。
参考资料(含参考书、文献等):
《数据结构题集》(C语言版)严蔚敏 吴伟民清华大学出版社1999.2
教学过程设计:
复习分钟,授新课 分钟,安排讨论分钟,布置作业分钟,其他分钟
授课类型(请打√):
理论课□讨论课□实验课□练习课□其他□
教学方式(请打√):
讲授□讨论□示教□指导□其他□
教学资源(请打√):
多媒体□模型□实物□挂图□音像□其他□
填表说明:
1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。
数据结构课程实验教案
第7页
实验题目:
综合题(三选一)
1、简易图书管理模拟系统
机时安排
6小时
实验时间
第14-16周
实验目的:
插入、查找和删除等数据操作在实际应用中非常普遍,通过设计和实现一个简易的图书管理系统,进一步提高学生对插入、查找和删除等操作的理解和应用能力。
帮助学生理解和掌握线性表和平衡二叉树等数据结构的基本操作和实现方法,加强学生综合应用数据结构知识解决实际问题的水平和能力。
实验内容:
1、问题描述:
一个简易图书管理的基本业务活动包括:
对新购入一种书的采编入库、图书的借阅和归还等。
2、基本要求:
(1)每种书的登记内容至少包括书号、书名、著者、现存量和总库存量等五项。
(2)作为演示系统,不必使用文件存储书籍数据和借阅登记信息。
我们要求各种书的数据用二叉排序树来存储,借阅登记信息采用顺序表—链表来存储。
顺序表存储借阅者信息,链表存储借阅者所借的各种书籍信息。
借阅登记信息的存储结构如下示意:
需要实现的三种主要功能定义如下:
①采编入库:
新购入一种书,经分类和确定书号之后登记到图书帐目中去。
如果这种书在帐中已有,则只将该书的总库存量增加。
②借阅:
如果一种书的现存量大于零,则借出一本,登记借阅者的图书证号和归还期限。
③归还:
注销对借阅者的登记,改变该书的现存量(如果借阅者归还所有的书,则注销该借阅者的信息)。
3、测试数据:
入库书号:
ISBN7-302-02368-9,ISBN978-7-115-16985-3/TP,ISBN978-7-302-03314-1,ISBN7-115-10563-4/TP·3043,ISBN978-7-121-07479-0,ISBN978-7-115-18809-0/TP,ISBN978-7-04-024246-1,ISBN7-111-12886-9,ISBN978-7-115-19601-9/TP,ISBN7-900183-01-9。
借书证号为081716的借阅者,先借阅10种图书各一本,后归还图书ISBN7-302-02368-9和ISBN978-7-121-07479-0。
借书证号为081710的借阅者,先借阅图书ISBN978-7-121-07479-0和ISBN978-7-302-03314-110各一本,后归还图书ISBN978-7-121-07479-0。
其余数据可自行设计。
4、实现提示:
(1)各种图书按登记的先后顺序入库(利用平衡二叉树实现动态查找表的插入),书号为图书的关键字。
初始时,平衡二叉树为空树。
(2)借阅者借阅图书时,先检查借阅者有无超期未归还图书,如有,则不能借阅,如无,利用平衡二叉树实现动态查找表的查找,登记借阅信息。
注意,按规定,同一种书不能重复借阅。
(3)清除库存(选作)时,将该图书从平衡二叉树中删除。
5、选作内容:
(1)实现图书管理的清除库存操作:
某种书已无保留价值,将它从图书帐目中注销。
即,要实现平衡二叉树的删除操作。
(2)实现图书管理的显示操作:
每次插入或删除平衡二叉树的一个结点之后,更新平衡二叉树的显示。
平衡二叉树的显示可采用《数据结构题集》6.69题要求的凹入表形式,也可以采用图形界面画出树形。
(3)图书管理模拟系统的其它功能实现。
参考资料(含参考书、文献等):
《数据结构题集》(C语言版)严蔚敏 吴伟民清华大学出版社1999.2
教学过程设计:
复习分钟,授新课 分钟,安排讨论分钟,布置作业分钟,其他分钟
授课类型(请打√):
理论课□讨论课□实验课□练习课□其他□
教学方式(请打√):
讲授□讨论□示教□指导□其他□
教学资源(请打√):
多媒体□模型□实物□挂图□音像□其他□
填表说明:
1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。
数据结构课程实验教案
第8页
实验题目:
综合题(三选一)
2、航空客运订票系统
机时安排
6小时
实验时间
第14-16周
实验目的:
帮助学生熟练掌握线性表的基本操作在顺序和链式两种存储结构上的实现,其中以各种链表的操作和应用作为重点内容。
实验内容:
1、问题描述:
航空客运订票的业务活动包括:
查询航线、客票预订和办理退票等。
试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。
2、基本要求:
(1)每条航线所涉及的信息有:
终点站名、航班号、机型、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、手机号、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、手机号、所需票量);
(2)作为示意系统,全部数据可只放在内存中;
(3)系统实现功能:
查询航班:
根据客户提供的终点站名输出下列信息:
航班号、机型、飞行周日(星期几)、最后一天航班的日期和余票量。
承办订票业务:
根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出订单号;若已满员或余票额少于订票额,则需重新询问;若需要,可登记排队候补。
承办退票业务:
根据客户提供的订单号或客户情况(姓名、日期和航班号),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。
3、测试数据:
由老师另外提供。
4、实现提示:
已定票客户名单可采用链式存储的线性表作存储结构;等候替补的客户名单可采用链式存储的队列作为存储结构。
整个系统需汇总个条航线的情况登记在一张顺序存储的线性表中,按航班号有序或目的地有序。
每条航线作为该线性表的一条记录,应包括上述8个域,其中,乘员名单域为指向乘员名单链表的头指针,等候替补的客户为分别指向队头和队尾的指针。
5、选作内容:
当客户订票要求不能满足时,系统可向客户提供到达同一目的地的其他航线情况。
参考资料(含参考书、文献等):
《数据结构题集》(C语言版)严蔚敏 吴伟民清华大学出版社1999.2
教学过程设计:
复习分钟,授新课 分钟,安排讨论分钟,布置作业分钟,其他分钟
授课类型(请打√):
理论课□讨论课□实验课□练习课□其他□
教学方式(请打√):
讲授□讨论□示教□指导□其他□
教学资源(请打√):
多媒体□模型□实物□挂图□音像□其他□
填表说明:
1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。
数据结构课程实验教案
第9页
实验题目:
综合题(三选一)
3、校园导游咨询
机时安排
6小时
实验时间
第14-16周
实验目的:
通过设计一个简单的校园导游咨询系统,加强学生对图数据结构的创建,查询以及其他的基本操作的理解,进一步提升学生对使用图结构解决具体问题的能力。
帮助学生理解和掌握图数据结构在处理日常事务中的应用方法,加强学生综合应用数据结构知识解决实际问题的水平和能力。
实验内容:
1、问题描述:
设计一个校园导游程序,为来访客人提供各种信息查询服务。
2、基本要求:
(1)设计你所在学校的校园平面图,所含景点不少于10个。
以图中的顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径的长度等相关信息。
(2)为来访客人提供图中任意景点相关信息查询。
(3)为来访客人提供图中任意景点的纹路查询,即查询任意两个景点之间的一条最短的简单路径。
3、测试数据:
根据学校的实际情况制定。
4、实现提示:
一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网。
顶点和边均含有相关信息。
5、选作内容:
(1)求校园图的相关节点。
(2)提供图中任意景点问路查询,即求任意两个景点之间的所有路径。
(3)提供校园图中多个景点的最佳访问路线查询,即求途经这多个景点的最佳(短)路径。
(4)校园导游图的景点和道路的修改扩充功能。
(5)扩充道路信息,如道路类别(车道,人行道等)、沿途景色等级、以及可按客人所需分别查询人行路径或车行路径或景观路径等。
(6)扩充每个景点的邻接景点的方向等信息,使得路径的查询结果能提供详尽的导向信息。
(7)实现校园导游图的仿真界面。
参考资料(含参考书、文献等):
《数据结构题集》(C语言版)严蔚敏 吴伟民清华大学出版社1999.2
教学过程设计:
复习分钟,授新课 分钟,安排讨论分钟,布置作业分钟,其他分钟
授课类型(请打√):
理论课□讨论课□实验课□练习课□其他□
教学方式(请打√):
讲授□讨论□示教□指导□其他□
教学资源(请打√):
多媒体□模型□实物□挂图□音像□其他□
填表说明:
1、每项页面大小可自行添减;2、教学内容与讨论、思考题、作业部分可合二为一。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 教案