- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一报告要点
HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY
数据结构
实 验 报 告
实验项目 实验一 实验类别 挑战篇 学生姓名 卢雄 学生学号 201501147 完成日期 2016-09-30 指导教师 袁科 实验成绩 评阅日期 评阅教师
实验一 线性表基本操作的编程实现
【实验目的】
线性表基本操作的编程实现
要求:
线性表基本操作的编程实现(2学时,验证型),掌握线性表的建立、遍历、插入、删除等基本操作的编程实现,也可以进一步编程实现查找、逆序、排序等操作,存储结构可以在顺序结构或链表结构中任选,可以完成部分主要功能,也可以用菜单进行管理完成大部分功能。还鼓励学生利用基本操作进行一些更实际的应用型程序设计。
【实验性质】
验证性实验(学时数:2H)
【实验内容】
把线性表的顺序存储和链表存储的数据插入、删除运算其中某项进行程序实现。建议实现键盘输入数据以实现程序的通用性。为了体现功能的正常性,至少要编制遍历数据的函数。
【注意事项】
1.开发语言:使用C。
2.可以自己增加其他功能。
【实验分析、说明过程】
一、系统功能模块图
二:流程图分析
Y
N
Y
N
Y
N
三:几点说明
1、单链表的创建是有头结点的,并且采用的尾插法;
2、链表的输出是从首结点开始遍历的;
3、单链表的排序用的是类似冒泡的方法来对链表的元素进行排序的;
4、结点中的数据是以int型为例的,可以改成其他类型;
5、LA与LB合并的关键:
当LA或LB为空时就直接对LA或LB进行排序且输出
当LA与LB都不为空时:
while(p-next!=NULL)
p=p-next;//p指向LA,把p移到LA的表尾
p-next=q-next;//q指向LB,把LA的表尾接到LB的表头(首节点)
四:运行结果截图:
1、当LA为空时:
2、当LB为空时:
3、当LA、LB都不为空时:
【思考问题】
一:线性表的顺序存储和链表存储的差异?优缺点分析?
答:1、差异:
线性表的顺序存储的特点是逻辑上相邻的数据元素,物理存储位置也相邻,并且,顺序表的存储空间需要预先分配,它是静态分配内存。顺序表的存储空间是静态分配的,在程序执行之前必须明确规定它的存储规模,也就是说事先对“MaxSize”要有合适的设定,设定过大会造成存储空间的浪费,过小造成溢出。因此,当对线性表的长度或存储规模难以估计时,不宜采用顺序表。
线性表的链表存储是在逻辑上相邻的数据元素,物理存储位置不一定相邻,它使用指针实现元素之间的逻辑关系。并且,链表的存储空间是动态分配的。链表的动态分配则可以克服需要预先设定空间大小的缺点。链表不需要预留存储空间,也不需要知道表长如何变化,只要内存空间尚有空闲,就可以再程序运行时随时地动态分配空间,不需要时还可以动态回收。因此,当线性表的长度变化较大或者难以估计其存储规模时,宜采用动态链表作为存储结构。
2、优缺点:
线性表的顺序存储优点:
方法简单,如数组,容易实现。
不用为表示节点间的逻辑关系而增加额外的存储开销。
顺序表具有按元素序号随机访问的特点。
线性表的顺序存储缺点:
文档评论(0)