1 / 9
文档名称:

数据结构实验报告.doc

格式:doc   大小:118KB   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构实验报告.doc

上传人:你是我的全部 2018/11/29 文件大小:118 KB

下载得到文件列表

数据结构实验报告.doc

相关文档

文档介绍

文档介绍:HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY
数据结构
实验报告
实验项目
实验一
实验类别
基础篇
学生姓名
宋大超
学生学号
201501149
完成日期
2016-10-9
指导教师
袁科
实验成绩
评阅日期
评阅教师
实验一线性表基本操作的编程实现
【实验目的】
线性表基本操作的编程实现
要求:
线性表基本操作的编程实现(2学时,验证型),掌握线性表的建立、遍历、插入、删除等基本操作的编程实现,也可以进一步编程实现查找、逆序、排序等操作,存储结构可以在顺序结构或链表结构中任选,可以完成部分主要功能,也可以用菜单进行管理完成大部分功能。还鼓励学生利用基本操作进行一些更实际的应用型程序设计。
【实验性质】
验证性实验(学时数:2H)
【实验内容】
把线性表的顺序存储和链表存储的数据插入、删除运算其中某项进行程序实现。建议实现键盘输入数据以实现程序的通用性。为了体现功能的正常性,至少要编制遍历数据的函数。
【注意事项】
:使用C。

【实验分析,说明过程】
本次实验主要是检验单链表数据的插入与删除。实验的第一部分是要求将学生e的信息插入到第i个学生的前面,也就是在两个节点之间建立新的节点。我们此次实验有两个要求。第一个是将一个新的学生信息插入到原来的学生信息当中去。第二个要求是要删除一个学生的信息。以下我将通过示意图和文字的方式说明这次实验的完成方法。需要说明的是此处的i表示学生信息的一个序号元素。
在第i个学生信息插入时,就得把第i个学生之后的所有节点依次向后移动一个位置。在将新的节点X插入到第i的位置。
1
Stu[1]
2
Stu[2]
3
Stu[3]
4
Stu[4]
n
Stu[n]
1
Stu[1]
2
Stu[2]
3
Stu[3]
4
Stu[4]
5
e
n
Stu[n]
如上图所示,例如将学生e的信息插入到第五个位置。我们先将指针指向最后一个位置,由于要插入一个新的节点,原来数组的长度发生了变化。数据的存储空间位置也随之发生了变化,为此,我们将最后一个节点向后移动,利用for循环将第五个节点之后的依次向后移动,直到所有的元素都向后移动了一位。
对于顺序链表的删除工作实际上与其插入工作相反,只需要将表中第i+1个到第n个节点的所有元素依次向后移动一个位置。
1
Stu[1]
2
Stu[2]
3
Stu[3]
4
Stu[4]
5
Stu[5]
1
Stu[1]
2
Stu[2]
3
Stu[4]
4
Stu[5]
如上图所举例的那样,当我们删除第三个元素是,第三个元素后面的元素依次向前移动了一位。我们可以直接找到第i个元素后面的位置将其向前移动一个。
【思考题】
一:线性表的顺序存储和链表存储的差异?优缺点分析?
答:1、差异:
线性表的顺序存储的特点是逻辑上相邻的数据元素,物理存储位置也相邻,并且,顺序表的存储空间需预先分配,它是静态分配内存。顺序表的存储空间是静态分配的,在程序执行之前必须明确规定它的存储规模,也就是说事先对“MaxSize”要有合适的设定,设定过大会造成存储空间的费,过小造成

最近更新