数据结构实验指导书(适用软件学院本科)

数据结构实验指导书(适用软件学院本科)

ID:1971717

大小:98.50 KB

页数:13页

时间:2017-11-14

数据结构实验指导书(适用软件学院本科)_第1页
数据结构实验指导书(适用软件学院本科)_第2页
数据结构实验指导书(适用软件学院本科)_第3页
数据结构实验指导书(适用软件学院本科)_第4页
数据结构实验指导书(适用软件学院本科)_第5页
资源描述:

《数据结构实验指导书(适用软件学院本科)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《数据结构与算法》实验指导书实验及学时数分配序号实验名称学时数(小时)1实验一线性表42实验二树和二叉树23实验三图24实验四查找25实验五内部排序2合计12几点要求:一、上机前:认真预习相关实验内容,提前编写算法程序,上机时检查(未提前编写程序者,扣除平时成绩中实验相关分数)。二、上机中:在TurboC或VC6.0环境中,认真调试程序,记录调试过程中的问题、解决方法以及运行结果。上机时签到;下机时验收签字。三、下机后:按要求完成实验报告,并及时提交(实验后1周内)。实验一线性表【实验目的】1、掌握用Turboc上机调试线性表的基本方法;2、掌握线性表的基本操作

2、,插入、删除、查找以及线性表合并等运算在顺序存储结构和链式存储结构上的运算;3、运用线性表解决线性结构问题。【实验学时】4学时【实验类型】设计型【实验内容】1、顺序表的插入、删除操作的实现;2、单链表的插入、删除操作的实现;3、两个线性表合并算法的实现。【实验原理】1、当我们在线性表的顺序存储结构上的第i个位置上插入一个元素时,必须先将线性表中第i个元素之后的所有元素依次后移一个位置,以便腾出一个位置,再把新元素插入到该位置。若是欲删除第i个元素时,也必须把第i个元素之后的所有元素前移一个位置;2、当我们在线性表的链式存储结构上的第i个位置上插入一个元素时,只需

3、先确定第i个元素前一个元素位置,然后修改相应指针将新元素插入即可。若是欲删除第i个元素时,也必须先确定第i个元素前一个元素位置,然后修改相应指针将该元素删除即可;3、详细原理请参考教材。【实验步骤】一、用C语言编程实现建立一个顺序表,并在此表中插入一个元素和删除一个元素。1、通过键盘读取元素建立线性表;2、指定一个元素,在此元素之前插入一个新元素;3、指定一个元素,删除此元素。二、用C语言编程实现建立一个单链表,并在此表中插入一个元素和删除一个元素。1、通过键盘读取元素建立单链表;2、指定一个元素,在此元素之前插入一个新元素;3、指定一个元素,删除此元素。三、用

4、C语言编程实现两个按递增顺序排列线性表的合并。1、编程实现合并按递增顺序排列的两个顺序表算法;2、编程实现合并按递增顺序排列的两个单链表算法。【思考问题】结合实验过程,回答下列问题:1、何时采用顺序表处理线性结构的问题为最佳选择?2、何时采用链表处理线性结构的问题为最佳选择?【实验报告要求】1、根据对线性表的理解,如何创建顺序表和单链表;2、实现顺序表插入和删除操作的程序设计思路;1、实现链表插入和删除操作的程序设计思路;2、实现两表合并操作的程序设计思路;3、调试程序过程中遇到的问题及解决方案;4、本次实验的结论与体会。实验二树和二叉树【实验目的】1、掌握二叉

5、树的结构特性,以及各种存储结构的特点及适用范围;2、掌握二叉树遍历算法。3、掌握线索二叉树算法。4、掌握赫夫曼编码算法。【实验学时】2学时【实验类型】设计型【实验内容】1、编程实现二叉树的遍历算法(可采用先序、中序和后序遍历算法之一);2、编制线索二叉树建立、遍历程序(采用中序遍历算法);3、通过给定字符a,b,c,d,e,f,g的使用频率,编程求出它们的赫夫曼编码。【实验原理】1、在二叉树的一些些应用中,常常要求在树中查找具有某种特征的结点,或者对树中全部结点逐一进行某种处理,这就是遍历二叉树的问题,二叉树是由三个基本单元组成:根结点、左子树和右子树,若限定先

6、左子树后右子树,则根据根的顺序可有三种遍历方法,即:先序遍历、中序遍历和后序遍历。2、在二叉链表存储结构中加上前驱或后继的线索,则构成线索二叉树,在线索二叉树中进行遍历可以很方便地得到访问二叉树的线性序列。3、赫夫曼树是一类带权路径长度最短的树,利用赫夫曼树进行编码可以得到最优的二进制前缀编码。4、详细原理请参考教材。【实验步骤】一、用C语言编程实现二叉树的中序遍历算法。1、采用二叉链存储结构创建一个二叉树;2、用非递归方法实现二叉树的中序遍历算法;3、输出二叉树中每个结点的值;4、给定具体数据调试程序。二、用C语言编程实现在线索二叉树上进行遍历。1、先进行二叉

7、树的线索化,即建立线索二叉树;2、在线索二叉树中遍历每个结点并输出每个结点的信息;3、给定具体数据调试程序。三、用C语言编程实现赫夫曼编码。假定用于通信的电文由8个字母A、B、C、D、E、F、G、H组成,各字母在电文中出现的概率为5%,25%,4%,7%,9%,12%,30%,8%,试编程为这8个字母设计赫夫曼编码。1、分析问题;2、编程创建此问题的赫夫曼树;3、编程求出此8个字母赫夫曼编码并输出;4、调试程序。【思考问题】结合实验过程,回答下列问题:1、采用非递归方法实现二叉树遍历与采用递归方法实现二叉树的遍历,哪个方法执行效率高;2、为什么在线索二叉树上进行

8、遍历,要比在二叉树上进行

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。