ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:55.85KB ,
资源ID:24880554      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24880554.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构实验.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构实验.docx

1、数据结构实验实验一 线性表实验 1实验二 栈、队列实验 3实验三 串和数组实验 5实验四 树实验 5实验五 图实验 6实验六 查找表实验 7实验七 内排序实验 8实验一 线性表实验【实验目的】1.掌握顺序表、单链表、循环链表、双向链表的构造原理及其基本运算的实现算法。2.了解线性表的顺序存储和链式存储结构的特点和适用情形。【实验学时】6学时【实验内容】题目一:编写一个程序,实现顺序表的各种基本运算,并在此基础上设计一个主程序完成如下功能:(1)初始化顺序表L。(2)依次采用尾插法插入a,b,c,d,e元素。(3)输出顺序表L及L的长度。(4)判断顺序表L是否为空。(5)输出顺序表L的第3个元素

2、。(6)输出元素d的位置。(7)在第4个元素位置上插入f元素。(8)删除L的第3个元素。(9)输出顺序表L。(10)释放顺序表L。题目二:编写一个程序,实现单链表的各种基本运算,并在此基础上设计一个主程序完成如下功能:(1)初始化单链表H。(2)依次采用尾插法插入a,b,c,d,e元素。(3)输出单链表H及H的长度。(4)判断单链表H是否为空。(5)输出单链表H的第3个元素。(6)输出元素d的位置。(7)在第4个元素位置上插入f元素。(8)删除H的第3个元素。(9)输出单链表L。(10)释放单链表L。题目三:编写一个程序,实现双链表的各种基本运算,并在此基础上设计一个主程序完成如下功能:(题目

3、三、四选做1个)(1)初始化双链表H。(2)依次采用尾插法插入a,b,c,d,e元素。(3)输出双链表H及H的长度。(4)判断双链表H是否为空。(5)输出双链表H的第3个元素。(6)输出元素d的位置。(7)在第4个元素位置上插入f元素。(8)删除H的第3个元素。(9)输出双链表L。(10)释放双链表L。题目四:编写一个程序,实现循环单链表的各种基本运算,并在此基础上设计一个主程序完成如下功能:(1)初始化循环单链表H。(2)依次采用尾插法插入a,b,c,d,e元素。(3)输出循环单链表H及H的长度。(4)判断循环单链表H是否为空。(5)输出循环单链表H的第3个元素。(6)输出元素d的位置。(7

4、)在第4个元素位置上插入f元素。(8)删除H的第3个元素。(9)输出循环单链表L。(10)释放循环单链表L。实训项目:1.将单链表按某个基准划分。编写一个程序,以给定值x为基准将单链表分割为两部分,所有小于x的结点排在大于或等于x的结点之前。并分析时间复杂度。2.用单链表表示的两个集合(假设同一个集合中不存在重复的元素),求它们的并、交和差运算。3.实现两个多项式相加运算。(2、3选做一个)4.用单链表实现两个大整数相加运算。要求:(选做)(1)将用户输入的十进制整数字符串转化为带头结点的单链表,每个结点存放一个整数位。(2)求两个整数单链表相加的结果单链表(3)求结果单链表的中间位,如234

5、的中间位是“3”,2345的中间位是“3”。5.P86 的2.18 约瑟夫问题。6.列车时刻表管理系统案例描述:一个火车要对进出本站的列车信息进行计算机管理,包括建立、增加、删除、查询、修改车次信息等。列车信息有车次、开点、到点、始发站、终点站等。已知进出该站的列车车次变化较多。实验二 栈、队列实验【实验目的】1.掌握栈的顺序及链式存储和基本运算的实现方法2.掌握队列的顺序及链式存储和基本运算的实现方法3.了解栈和队列的应用【实验学时】8学时【实验内容】题目一:编写一个程序,实现顺序栈的各种基本运算,并在此基础上设计一个主程序完成如下功能:(1)初始化栈S。(2)判断栈S是否非空。(3)依次进

6、栈元素a,b,c,d,e 。(4)输出栈的长度。(5)输出从栈顶到栈底的元素。(6)输出出栈序列。(7)释放栈。题目二:编写一个程序,实现循环队列的各种基本运算,并在此基础上设计一个主程序完成如下功能:(1)初始化队列Q。(2)判断队列Q是否非空。(3)依次进队列元素a,b,c。(4)出队一个元素,输出该元素。(5)输出队列Q的元素个数。(6)依次进入队列元素d,e,f。(7)输出出队序列。(8)释放队列。要求:其中队列的插入和删除算法按照P134 的3.24改写。【实训项目】:1.P132:3.10,3.14,3.19。2.利用栈对只含二目运算符的中缀算术表达式求值,并将该中缀表达式转换为后

7、缀表达式。算术运算符包括:*、/、+、-,优先级从高到低。3.用栈求解下图所示迷宫的所有路径,并输出最短路径长度及该最短路径。4.P133的3.17:八皇后问题,可以用递归方法实现,或者借助栈实现。(选做)5.病人看病模拟程序编写一个程序,反映病人到医院看病,排队看医生的情况。在病人排队过程中,主要重复两件事:(1)病人到达诊室,将病历本交给护士,排到等待队列中候诊(2)护士从等待队列中取出下一位病人的病历,该病人进入诊室就诊要求模拟病人等待就诊这一过程。程序采用菜单方式,其选项及功能说明如下:排队输入排队病人的病历号,加入病人排队队列中;就诊病人排队队列中最前面的病人就诊,并将其从队列中删除

8、;查看排队从对首到队尾列出所有的排队病人的病历号;不再排队,余下依次就诊从对首到队尾列出所有的排队病人的病历号,并退出运行;下班退出运行。实验三 串和数组实验【实验目的】1.掌握串的顺序存储结构2.掌握串的基本算法及应用3.掌握模式匹配的各种算法4.掌握数组和广义表的基本算法【实验学时】8学时【实验内容】1.采用顺序存储结构存储串,编写一个程序,采用简单模式匹配方法求串s中出现的第一个最长重复子串的下标和长度。例如:s=“aababcabcdabcde”,最长重复子串为:abcd2.编写一个程序,利用KMP算法求子串t在主串是中出现的次数,并以s=”aaabbdaabbde”,t=“aabbd

9、”为例,显示其匹配过程。(匹配过程的显示选做)。3.实现稀疏矩阵的基本运算。假设n*n的稀疏矩阵A采用三元组表示,设计一个程序,实现如下功能:(1)生成如下两个稀疏矩阵的三元组a和b;1 0 3 0 3 0 0 00 1 0 0 0 4 0 00 0 1 0 0 0 1 00 0 1 1 0 0 0 2(2)输出a转置矩阵的三元组(3)输出a+b的三元组4.实现广义表的基本运算。编写一个程序,实现广义表的以下操作,完成以下功能:(1)建立广义表g=(b,(b,a,( ),d),(a,b),c,( ))的链式存储结构。(2)输出广义表g的长度(3)输出广义表g的深度。5.求一个矩阵中的马鞍点。如

10、果矩阵A中存在这样的一个元素,满足条件:Aij是第i行中值最小的元素,并且是第j列中值最大的元素,则称之位该矩阵的一个马鞍点。设计一个程序,求矩阵中所有的马鞍点。实验四 树实验【实验目的】1.掌握二叉树的顺序和链式存储结构2.掌握二叉树的建立、遍历、线索化等基本算法及应用3.掌握哈夫曼树的构造过程和哈夫曼编码方法4.了解树、森林与二叉树的转换算法5.了解哈夫曼编码和解码算法【实验学时】10学时【实验内容】1.编写一个程序,实现二叉树的各种运算,并在此基础上设计一个主程序完成如下功能:ABDCYGFE图一(1)由如图一所示的二叉树创建其对应的二叉链表存储结构(提示:由二叉树的扩展前序序列构造二叉

11、链表)(2)输出二叉树的中序、先序、后序遍历序列的递归和非递归算法(中序必做,先序和后序选做);(3)输出二叉树B(树形结构或者广义表形式);(选做)(4)输出二叉树中指定结点值(假设所有节点值不同)的左右孩子结点;(5)输出二叉树B的叶子结点个数;(6)输出该二叉树的高度;(7)输出二叉树中指定结点值(假设所有节点值不同)的结点所在的层次;(选做)(8)释放二叉树B。2.已知一棵树的前序遍历序列和中序遍历序列,试构造这棵二叉树,以P248的5.18验证。3.P248的5.26,用非递归方式实现,选做。4.线索化二叉树的操作:(1)编写一个程序实现二叉树的中序线索化,采用递归和非递归方式输出中

12、序线索二叉树的中序序列,并以图(一)所示的二叉树B对程序进行验证;(2)求出该线索化二叉树中给定结点的直接前驱和直接后继结点。(3)P249 选做 5.31。单词TheofatoandInthatheisatonforhisarebe频率11926775415184624502421951901811741571381241235.编写一个程序,构造一棵哈夫曼树,输出对应的哈夫曼编码和平均查找长度,并对表1所示的数据进行验证。 表1 单词及出现的频率【实训项目】:(选做)1.对某大学的信息进行统计内容:编写一个程序,实现大学的数据统计,某大学的组织机构如表所示,该数据存放在文本文件abc.tx

13、t 中。要求采用树的孩子链表存储结构存储它,并完成以下功能:(1)从 abc.txt文件中读数据到R数组中;(2)由数组R创建树t的孩子链存储结构;(3)采用广义表形式输出树t;(4)求计算机学院的专业数量;(5)求计算机学院的班级数量;(6)求电信学院的学生数量;(7)销毁树。单位下级单位或人数单位下级单位或人数中国地质大学计算机学院物联网物联班中国地质大学电信学院物联班38计算机学院计算机科学电信学院电子信息类计算机学院信息安全电信学院信息工程计算机学院物联网电子信息类电信1班计算机科学计科1班电子信息类电信2班计算机科学计科2班电子信息类电信3班计算机科学计科3班电信1班40计科1班32

14、电信2班38计科2班35电信3班42计科3班33信息工程信息1班信息安全信安1班信息工程信息2班信安1班36信息1班38信安2班38信息2班35实验五 图实验【实验目的】1.掌握图的邻接矩阵、邻接表等存储表示方法2.掌握图的深度优先遍历和广度优先遍历算法3.了解最小生成树、最短路径等问题的求解过程、算法和应用4.了解关键路径、拓扑排序等问题的求解过程和应用【实验学时】2学时【实验内容】题目一:编写一个程序,实现图的相关运算,并在此基础上设计一个主程序完成如下功能:(1)建立图(二)所示的有向图G的邻接矩阵,并输出之。(2)由有向图G的邻接矩阵产生邻接表,并输出之。(3)再由(2)的邻接表产生对

15、应的邻接矩阵,并输出之。题目二:编写一个程序,实现图的遍历算法,并在此基础上设计一个主程序完成如下功能:(4)输出图(二)的有向图G从顶点V1开始的深度优先遍历序列序列(递归算法)(5)输出如图(二)的有向图G从顶点v1开始的深度优先遍历序列(非递归算法)(6)输出如图(二)的有向图G从顶点v1开始的广度优先遍历序列(选做)【实训项目】子工程建设时间的安排(选做?)现某公司有一计算机机房建设工程,它包含的子工程以及各子工程之间的关系如表2所示。由于资金和场地等条件限制,这些子工程必须一项一项地进行,不能有并行情况。请给出一种可行的安排这些子工程建设时间的一个线性序列,按照它的顺序依次进行各个子

16、工程的建设,以顺利完成整个工程。 表2 计算机机房建设工程表子工程代号子工程名称前序子工程V1设计图纸无V2招标公司无V3机房装修V1 V2V4购买电源V1V5购买机器V2V6装机组网V3 V4 V5V7软件配置V6V8网络调试V6 V7V9工程验收V6 V7 V8实验六 查找表实验【实验目的】1.掌握顺序查找、二分查找等算法的思想、查找过程、算法实现及应用2.了解哈希表的构造、哈希函数的构造方法及处理冲突的方法3.了解二叉排序树的构造、查找等算法【实验学时】2学时【实验内容】题目一:编写一个程序,输出在顺序表3,6,2,10,1,8,5,7,4,9中采用顺序方法查找关键字5的过程。题目二:编

17、写一个程序,输出在顺序表1,2,3,4,5,6,7,8,9,10中采用二分查找方法查找关键字5的过程。题目三:编写一个程序实现哈希表的相关运算,并在此基础上完成如下功能:(1)建立16,74,60,43,54,90,46,31,29,88,77哈希表A012,哈希函数为:H(k)keyp,并采用线性探测再散列法解决冲突(2)在上述哈希表中查找关键字为29的记录(3)在上述哈希表中删除关键字为77的记录,再将其插入。实验七 内排序实验【实验目的】1.掌握直接插入排序、冒泡排序、快速排序、希尔排序等排序方法的基本思想、排序过程、算法实现及其稳定性、复杂度和适用场合等特性及应用2.了解堆排序、归并排

18、序、基数排序等排序方法的基本思想、排序过程、稳定性、复杂度和适用场合等特性【实验学时】2学时【实验内容】题目一:编写一个程序实现直接插入排序过程,并输出9,8,7,6,5,4,3,2,1,0的排序过程。题目二:编写一个程序实现希尔排序过程,并输出9,8,7,6,5,4,3,2,1,0的排序过程。题目三:编写一个程序实现快速排序过程,并输出6,8,7,9,0,1,3,2,4,5的排序过程。一、课程设计要求1、对系统进行功能分解、模块分析、控制模块分析正确2、选择合适的操作系统原理所需要数据结构以及相应的算法3、程序规模适中,着重于内核修订功能,也可以编写外围的程序驱动、文件系统的辅助工具和网络工

19、具等。尽可能的使系统的功能更加完善和全面4、掌握程序调试的方法5、说明书、流程图要清楚,阐述设计思路。6、撰写课程设计报告。按格式要求写出完整、规范的报告并打印。其中模块图、流程图要清楚、规范。特别要求学生自己独立完成。二、课程设计报告要求:总结报告按如下内容顺序进行撰写并打印装订成册:1、统一的封面;2、内容摘要;3、目录4、课程设计正文包含以下内容:(1)需求分析(2)概要设计:每个部分的算法设计说明可以是描述算法的流程图,说明每个程序中使用的存储结构设计(如果指定存储结构请写出该存储结构的定义)(3)详细设计:各个算法实现的源程序,源程序要按照写程序的规则来编写。要结构清晰,重点函数的重

20、点变量,重点功能部分要加上清晰的程序注释。(4)调试分析:测试数据,测试输出的结果,算法时间复杂度分析(5)结论和展望:主要模块设计和调试时存在问题的思考问题是哪些?问题如何解决?)和算法的改进设想。课程设计过程的收获、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对数据结构课程的认识等内容。(6)按统一格式列出主要参考文献。三、学生上交材料:1.程序源代码和一组较完备的测试数据(打包上传,发送到指导老师的邮箱中,文件名格式为:学号-姓名 )。2.上交程序的说明文件:(保存在.txt 中)在说明文档中应该写明上交程序所在的目录,上交程序的主程序文件名。3.课程设计报告。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1