#《数据结构课程实验》大纲Word格式.docx
- 文档编号:15857279
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:15
- 大小:51KB
#《数据结构课程实验》大纲Word格式.docx
《#《数据结构课程实验》大纲Word格式.docx》由会员分享,可在线阅读,更多相关《#《数据结构课程实验》大纲Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
实验中的内容和教科书的内容是密切相关的,解决题目要求所需的各种技术大多可从教科书中找到,只不过其出现的形式呈多样化,因此需要仔细体会,在反复实践的过程中才能掌握。
为了帮助学生更好地学习本课程,理解和掌握算法设计所需的技术,为整个专业学习打好基础,要求运用所学知识,上机解决一些典型问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握所用到的一些技术。
数据结构中稍微复杂一些的算法设计中可能同时要用到多种技术和方法,如算法设计的构思方法,动态链表,算法的编码,递归技术,和特定问题相关的技术等,要求重点掌握线性链表、二叉树和树、图结构、数组结构相关算法的设计。
在掌握基本算法的基础上,掌握分析、解决实际问题的能力。
三、《数据结构课程实验》内容
课程实验共10学时,要求完成以下五个题目:
实习一约瑟夫环问题(2学时)
用循环链表实现约瑟夫环问题,熟悉链表结构的使用。
实习二八皇后问题(2学时)
在8×
8的棋盘上放置彼此不受攻击的8个皇后,熟悉递归和回溯程序设计方法。
实习三二叉树基本操作(2学时)
创建、遍历、显示二叉树,通过二叉树的基本操作,掌握树结构的处理方法。
实习四哈夫曼编码和译码
针对字符集A及其各字符的频率值(可统计获得)给出其中给字符哈夫曼编码,并针对一段文本(定义在A上)进行编码和译码,实现一个哈夫曼编码/译码系统。
实习五最小生成树问题(2学时)
在n个城市之间建设网络,只需保证连通即可,求最经济的架设方法。
四、《数据结构课程实验》考核方式
采用上机情况、程序质量、实习报告相结合的形式,满分为100分。
1.上机情况(30%)
包括出勤情况、调试表现、是否上网、玩游戏。
2.程序质量(50%)
3.实习报告(20%)
《数据结构课程实验》指导书
实习一线性表
本次实习的主要目的在于熟悉线性表的基本运算在两种存储结构上的实现,其中以熟悉各种链表的操作为侧重点。
通过本次实习还可帮助读者复习高级语言的使用方法。
1、城市链表
[问题描述]
将若干城市的信息,存入一个带头结点的单链表。
结点中的城市信息包括:
城市名,城市的位置坐标。
要求能够利用城市名和位置坐标进行有关查找、插入、删除、更新等操作。
[基本要求]
(1)给定一个城市名,返回其位置坐标;
(2)给定一个位置坐标P和一个距离D,返回所有和P的距离小于等于D的城市。
[测试数据]
由学生依据软件工程的测试技术自己确定。
注意测试边界数据。
2、约瑟夫环
约瑟夫(Joeph)问题的一种描述是:
编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。
一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。
报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。
试设计一个程序求出出列顺序。
利用单向循环链表存储结构模拟此过程,按照出列的顺序印出各人的编号。
m的初值为20;
密码:
3,1,7,2,4,8,4(正确的结果应为6,1,4,7,2,3,5)。
[实现提示]
程序运行后首先要求用户指定初始报数上限值,然后读取各人的密码。
设n≤30。
[选作内容]
向上述程序中添加在顺序结构上实现的部分。
3、线性表的逆置
分别以不同存储结构实现线性表的就地逆置。
线性表的就地逆置就是在原表的存储空间内将线性表(a1,a2,a3,…,an)逆置为(an,an-1,…,a2,a1)。
用顺序存储结构实现线性表的就地逆置,并将结果输出。
注意测试边界数据,如空表。
设三个连续的指针,分别指向当前结点、当前结点的前趋、当前结点的后继。
利用单链表作为存储结构。
首先先建立线性表的带头结点的单链表表示形式,之后在不借助辅助结点空间的情况下实现单链表的逆置,并将结果输出。
4、长整数运算
设计一个程序实现两个任意长的整数求和运算。
利用双项循环链表实现长整数的存储,每个结点含一个整型变量。
任何整型变量的范围是 -(215-1)~(215-1)。
输入和输出形式:
按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。
(1)0;
0;
应输出“0”。
(2)-2345,6789;
-7654,3211;
应输出“-1,0000,0000”。
(3)-9999,9999;
1,0000,0000,0000;
应输出“9999,0000,0001”。
(4)1,0001,000;
-1,0001,0001;
(5)1,0001,0001;
-1,0001,0000;
应输出“1”。
(1)每个结点中可以存放的最大整数为215-1=32767,才能保证两数相加不会溢出。
但若这样存,即相当于按32768进制数存,在十进制数和32768进制数之间的转换十分不方便。
故可以在每个结点中仅存十进制数的4位,即不超过9999的非负整数,整个链表视为万进制数。
(2)可以利用头结点数据域的符号代表长整数的符号。
用其绝对值表示元素结点数目。
相加过程中不要破坏两个操作数链表。
两操作数的头指针存于指针数组中是简化程序结构的一种方法。
不能给长整数位数规定上限。
修改上述程序,使它在整型量范围是-(2n-1)~(2n-1)的计算机上都能有效地运行。
其中,n是由程序读入的参量。
输入数据的分组方法可以另行规定。
实习二栈、队列和递归算法设计
仅仅认识到栈和队列是两种特殊的线性表是远远不够的,本次实习的目的在于使读者深入了解栈和队列的特征,以便在实际问题背景下灵活运用它们;
同时还将巩固这两种结构的构造方法,接触较复杂问题的递归算法设计。
1、数制转换问题
将十进制数N和其它d进制数的转换是计算机实现计算的基本问题,其解决方案很多,其中最简单方法基于下列原理:
即除d取余法。
例如:
(1348)10=(2504)8
N Ndiv8 Nmod8
1348 168 4
168 21 0
21 2 5
2 0 2
从中我们可以看出,最先产生的余数4是转换结果的最低位,这正好符合栈的特性即后进先出的特性。
所以可以用顺序栈来模拟这个过程。
对于键盘输入的任意一个非负的十进制整数,打印输出和其等值的八进制数。
由于上述的计算过程是从低位到高位顺序产生的八进制数的各个数位,而打印输出,一般来说应从高位到地位进行,恰好和计算过程相反。
因此可以先将计算过程中得到的八进制数的各位进栈,待相对应的八进制数的各位均产生以后,再使其按顺序出栈,并打印输出。
即得到了和输入的十进制数相对应的八进制数。
2、回文判断
试写一个算法,判断依次读入的一个以@为结束符的字母序列,是否为形如‘序列1 &
序列2’模式的字符序列。
其中序列1和序列2 中都不含字符‘&
’,且序列2 是序列1的逆序列。
例如,‘a+b&
b+a’是属该模式的字符序列,而‘1+3&
3-1’则不是。
首先,序列1进栈,然后序列1出栈并和序列2比较。
注意测试边界数据,如序列1和序列2均为空串。
3、商品货架管理
商品货架可以看成一个栈,栈顶商品的生产日期最早,栈底商品的生产日期最近。
上货时,需要倒货架,以保证生产日期较近的商品在较下的位置。
针对一种特定商品,实现上述管理过程。
用栈模拟货架和周转空间。
注意测试边界数据,如空栈。
4、括号匹配的检验
假设表达式中允许有两种括号:
圆括号和方括号,其嵌套的顺序随意,即(()[])或
[([][])]等为正确格式,[(])或(((]均为不正确的格式。
检验括号是否匹配的方法可用“期待的紧迫程度”这个概念来描述。
考虑下列的括号序列:
[ ( [ ] [ ] ) ]
1 2 3 4 5 6 7 8
当计算机接受了第1个括号以后,他期待着和其匹配的第8个括号的出现,然而等来的却是第2个括号,此时第1个括号“[”只能暂时靠边,而迫切等待和第2个括号相匹配的第7个括号“)”的出现,类似的,因只等来了第3个括号“[”,此时,其期待的紧迫程度较第2个括号更紧迫,则第2个括号只能靠边,让位于第3个括号,显然第3个括号的期待紧迫程度高于第2个括号,而第2个括号的期待紧迫程度高于第1个括号;
在接受了第4个括号之后,第3个括号的期待得到了满足,消解之后,第2个括号的期待匹配就成了最急迫的任务了,……,依次类推。
可见这个处理过程正好和栈的特点相吻合。
读入圆括号和方括号的任意序列,输出“匹配”或“此串括号匹配不合法”。
[测试数据]
输入([]()),结果“匹配”
输入[()],结果“此串括号匹配不合法”
设置一个栈,每读入一个括号,若是左括号,则作为一个新的更急迫的期待压入栈中;
若是右括号,并且和当前栈顶的左括号相匹配,则将当前栈顶的左括号退出,继续读下一个括号,如果读入的右括号和当前栈顶的左括号不匹配,则属于不合法的情况。
在初始和结束时,栈应该是空的。
考虑增加大括号的情况。
5、停车场管理
设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。
汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;
当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构课程实验 数据结构 课程 实验 大纲