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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构实验安排.docx

1、数据结构实验安排 数据结构实验安排实验一 顺序表的插入和删除1.实验目的:了解顺序表的基本概念、结构的定义及在顺序表上的基本操作(插入、删除、查找以及线性表合并),通过用C语言实现以上操作,更好地了解书本上的内容。2.实验预备知识: 复习C语言中数组的用法。 了解线性表和顺序表的概念,顺序表的定义方法; 线性表是n个数据元素的有限序列,至于每个数据元素的具体含义,在不同的情况下各不相同。 顺序表是线性表的顺序存储表示,是用一组地址连续的存储单元依次存储线性表的数据元素。 在C语言中,顺序表是用数组或指针来实现的。 掌握线性表在顺序存储结构上实现基本操作:查找、插入、删除和合并的算法。在实现这些

2、算法的时候,要注意判断输入数据的合法性,除此之外还要要注意以下内容: 在实现查找的时候,首先要判断该顺序表是否为空,其次要判断查找后的结果(查到时输出查到的数据,未查到时给出错误提示)。 在实现插入的时候,首先要判断该顺序表是否为满,如为满则须重新分配空间(此时要注意:若顺序表是用数组来实现的,它不能随机分配空间);如不为满,则需判断要插入的位置是否合法(例如:如果一个线性表的元素只有10个,而要在第0个元素前插入或在第11个元素后插入就为不合法)。其次要注意是前插还是后插,两者是有区别的;最后还要注意插入时各个数据元素移动的次序是从后面依次开始移动。 在实现删除的时候,首先要判断该顺序表是否

3、为空,如为空则报错,如不为空,则需判断要删除的位置是否合法(例如:如果一个线性表的元素只有10个,而要删除第0个或第十一个元素就为不合法)。其次还要注意删除时各个数据元素移动的次序是从前面依次开始移动。 3.实验内容:1、顺序表的建立2、顺序表的插入(输入插入位置i,插入元素)3、顺序表的删除(输入删除元素位置i)4、顺序表的打印5、顺序表的合并算法(选做)实验二 单链表的插入和删除 1.实验目的: 了解单链表的基本概念、结构的定义及在单链表上的基本操作(插入、删除、查找以及线性表合并),通过在Turbo C实现以上操作更好的了解书本上的内容并体会线性表的两种存储结构的区别。 2.实验预备知识

4、: 复习C语言中指针的用法,特别是结构体的指针的用法; 了解单链表的概念,单链表的定义方法;单链表是线性表的链式存储表示,是用一组任意的存储单元依次存储线性表的数据元素。因此,为了表示每个数据元素ai与其直接后继元素ai+1之间的逻辑关系,对数据元素ai来说,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息(即直接后继的存储位置),而这部分就是用指针来完成的。 掌握线性表在链式存储结构上实现基本操作:查找、插入、删除的算法。 在实现这些算法的时候,要注意判断输入数据的合法性,除此之外还要要注意以下内容: 在实现查找的时候,首先要判断该顺序表是否为空,其次要判断查找后的结果(查到时输出

5、查到的数据,未查到时给出错误提示)。 在实现插入的时候,由于是链式存储,它可以随机产生和回收存储空间,所以它不要判断线性表是否为满,但仍需判断要插入的位置是否合法,原因同实验一,其次要注意插入的时候语句的顺序不可颠倒,否则出错。 例如:p s s所指向结点要插入在p所指向的结点之后,则: 正确形式:s-next=p-next p-next=s 错误形式:p-next=s s-next=p-next(因为此时p-next已经指向s了) 在实现删除的时候,首先要判断线性表是否为空,为空则不能删除; 其次在删除后要回收空间。 p s 例如:删除如上图所示s所指向的结点 p-next=p-next-n

6、ext free s 3.实验内容: 单链表的插入算法 单链表的删除算法 双向链表的插入和删除算法(选做)实验三 栈的应用 1.实验目的: 了解栈的概念、栈的特性、在两种存储结构上如何实现栈的基本操作以及栈在程序设计中的应用。通过在Turbo C中实现顺序栈的插入和删除加深理解顺序栈的意义。 2.实验预备知识: 掌握栈这种抽象数据类型的特点,并能在相应的应用任务中正确选用它; 栈是操作受限的线性表,是限定仅在表尾进行插入或删除操作的线性表。因此,对栈来说,表尾端有其特殊含义,称为栈顶(top),相应地,表头端称为栈底(botton); 栈又称为后进先出(Last In First Out)的线

7、性表,简称LIFO结构,因为它的修改是按后进先出的原则进行的。 熟练掌握栈类型的两种实现方法,即两种存储结构表示时的基本操作实现算法,特别应注意栈满和栈空的条件以及它们的描述方法。 在学习顺序栈的基本操作实现算法时,应注意:在书上给出的结构定义是采用了一种动态管理方式(不够时,可以再分配),但在C语言中,用数组来存储顺序栈,是静态分配,即不能随机分配空间,这点易引起大家的误解。 3.实验内容: 顺序栈的进栈、出栈算法 顺序栈的应用(数制转换)实验四 队列的应用 1.实验目的: 了解队列的概念、队列的特性、在两种存储结构上如何实现队列的基本操作以及队列在程序设计中的应用。通过在Turbo C中实

8、现队列的插入和删除加深理解链队列和循环队列的意义。 2.实验预备知识: 掌握队列这种抽象数据类型的特点,并能在相应的应用任务中正确选用它; 队列是操作受限的线性表,是只允许仅在表的一端进行插入,而在另一端进行删除操作的线性表。在队列中,允许插入的一端称为队尾(rear),允许删除的一端称为对头(front); 队列又称为先进先出(First In First Out)的线性表,简称FIFO结构。 因为它的修改是按先进先出的原则进行的。 熟练掌握循环队列和链队列的基本操作实现算法,特别注意在循环队列中队满和队空的描述方法。 3.实验内容: 链队列的进队和出队算法 循环队列的进队和出队算法实验五

9、数组的应用 1.实验目的: 了解数组的类型定义和表示方法;特殊矩阵和稀疏矩阵的压缩存储方法及运算的实现。通过在Turbo C语言的实验加强对数组的理解和对稀疏矩阵的压缩存储方法及运算的实现。 2.实验预备知识: 了解数组的两种存储表示方法,并掌握数组在以行为主的存储结构中的地址计算公式。 LOC(i,j)=LOC(0,0)+(b2*i+j)*L 掌握对特殊矩阵进行压缩存储时的下标变换公式 对称矩阵: i*(i-1)/2+j-1 当i=j 三角矩阵: k= j*(j-1)/2+i-1 当ij 三对角矩阵: sak=2*i+j 了解稀疏矩阵的两种压缩存储方法的特点和适用范围,领会以三元组表示稀疏矩

10、阵时进行矩阵运算采用的处理方法。 3.实验内容: 三元组顺序表结构的定义 矩阵的转置运算实验六 二叉树的遍历 1.实验目的: 通过该实验加深对树及二叉树的结构特性、各种存储结构的特点及区别。2.实验预备知识: 了解树的结构特点及概念、二叉树的概念及结构特点。 了解树和二叉树的基本概念和术语。 二叉树的三种遍历方法(先序、中序、后序遍历) 先序遍历:若二叉树为空,则空操作,否则1 访问根结点;2 先序遍历左子树;3 先序遍历右子树。 中序遍历:若二叉树为空,则空操作,否则1 中序遍历左子树;2 访问根结点;3 中序遍历右子树。 后序遍历:若二叉树为空,则空操作,否则1 后序遍历左子树;2 后序遍

11、历右子树;3 访问根结点。 二叉树的各种存储结构及其适用范围,特别是链式存储结构。 3.实验内容: 二叉树的链式存储结构定义 二叉树的三种遍历算法实验七 二叉树的应用 1.实验目的: 通过该实验加深对线索二叉树的结构特性、各种存储结构的特点及区别。2.实验预备知识: 了解线索二叉树的概念及结构特点。 了解线索二叉树的基本术语。 线索二叉树的遍历方法(中序遍历) 二叉树的各种存储结构及其适用范围,特别是链式存储结构。 3.实验内容: 创建线索二叉树的链式存储结构 线索二叉树的中序遍历算法实验八 图的应用 1.实验目的: 1 掌握图的基本存储方法。 2 掌握有关图的操作算法并用高级语言编程实现;

12、3 熟练掌握图的两种搜索路径的遍历方法。 2.实验预备知识: 图的定义和基本术语; 图的四种存储结构(数组表示法、邻接表、十字链表和邻接多重表); 图的两种遍历策略(深度优先搜索和广度优先搜索),并应该注意图的遍历和树的遍历算法之间的区别; 图的连通性、连通分量和最小生成树的概念和实现方法; 拓扑排序和关键路径、两类求最短路径问题的解法。 3.实验内容: 以邻接矩阵和邻接表的方式存储连通图。然后分别用深度优先算法遍历邻接矩阵方式存储的图和邻接表方式存储的图。实验九 查找应用 1.实验目的: 通过各种查找算法的编写加深对各种查找方法(包括静态查找表和动态查找表)的基本思想、查找过程以及查找的时间

13、复杂度的理解。2.实验预备知识: 熟练静态查找表的概念和查找方法; 顺序表的查找方法为:顺序查找; 有序表的查找方法为:顺序查找、折半查找 熟练掌握动态查找表的概念和查找方法; 掌握二叉排序树(二叉查找树)的查找方法;理解平衡二叉树的维护平衡方法 3.实验内容: 折半查找的算法 二叉排序树的查找算法实验十 排序1.实验目的: 通过各种排序算法的编写加深对各种排序方法(包括静态查找表和动态查找表)的基本思想、排序过程以及排序的时间复杂度的理解。2.实验预备知识: 熟练直接插入排序的基本思想和方法; 熟练快速排序法的基本思想和方法; 3.实验内容: 直接插入排序算法 快速排序算法实验十一 综合实验

14、 1.实验目的: 利用所学到的知识设计出合适的存储结构解决相关的实际问题。2.实验内容: 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 ,输入每个人的密码,建立单循环链表。输出形式:建立一个输出函数,将正确的输出序列 赫夫曼树的建立 任务 :建立建立最优二叉树函数要求:可以建立函数输入二叉树,并输出其赫夫曼树在上交资料中请写明:存储结构、 基本算法(可以使用程序流程图) 、输入输出、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2