线性表的基本操作

线性表的基本操作

ID:10648633

大小:192.50 KB

页数:12页

时间:2018-07-07

线性表的基本操作_第1页
线性表的基本操作_第2页
线性表的基本操作_第3页
线性表的基本操作_第4页
线性表的基本操作_第5页
资源描述:

《线性表的基本操作》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验报告实验类型__综合设计__实验室_软件实验室三__一、实验题目线性表的基本操作二、实验目的和要求1)掌握线性表的特点2)掌握线性表的顺序存储结构和链式存储结构的基本运算及应用。3)尽可能考虑算法的健壮性4)实验报告中要写出测试数据、错误分析以及收获。三、需求分析本演示程序用c++6.0编写,完成单链表和顺序表的生成,任意位置的插入、删除,以及确定某一元素在单链表中的位置。1、输入的形式和输入值的范围:插入元素时需要输入插入的位置和元素的值;删除元素时输入删除元素的位置;查找操作时需要输入元

2、素的值。在所有输入中,元素的值都是整数2、输出的形式:在所有三种操作中都显示操作是否正确以及操作后单链表的内容。其中删除操作后显示删除的元素的值,查找操作后显示要查找元素的位置3、程序所能达到的功能:完成能完成两种存储结构的基本运算以及二级菜单的运用4、测试数据1)输入1,建立一个顺序表链2)插入操作中依次输入,1,2,3,4,生成一个单链表3)查找操作中依次输入,2,返回这个元素在单链表中的位置4)删除操作中依次输入2,删除位于2的元素5)输入2,建立一个链表表,再做类似上述数据测试四、概要设

3、计为了实现上述程序功能,需要定义1、单链表的抽象类型如下: ADTLinkList{   数据对象:D={ai

4、ai∈IntegerSet,i=0,1,2,…,n,n≥0}   数据关系:R={

5、ai,ai+1∈D}   基本操作:   CreateList_L1(&L)   操作结果:构造一个空的单链表L. ListInsert_L1(&L,i,e)  初始条件:单链表L已存在操作结果:将元素e插入到单链表L的第i位置前ListInsert_L2(&L,i,e)  初始条件:

6、单链表L已存在  操作结果:将元素e插入到单链表L的第i位置后ListDelte_L(&L,i)  初始条件:单链表L已存在  操作结果:将单链表L中i位置的元素删除  GetElem_L(L,i)  初始条件:单链表L依存在  操作结果:单链表L中查找第i个元素并返回其元素length_l(&L)初始条件:单链表L已存在  操作结果:将单链表L的长度值返回 }2、顺序表的抽象数据类型 ADTlist{   数据对象:D={ai

7、ai∈ElemSet,i=0,1,2,…,n,n≥0}   数据关

8、系:R={

9、ai,ai+1∈D}   基本操作:   Initlist_Sq(&L)   操作结果:构造一个空的顺序表L. ListInsert_Sq(&L,i,e)  初始条件:顺序表L已存在操作结果:将元素e插入到顺序表L的第i位置ListDelete_Sq(&L,i,&e)  初始条件:顺序表L已存在  操作结果:将顺序表L中i位置的元素删除,元素值置入e中返回  locate_Sq(L,e)  初始条件:顺序表L依存在  操作结果:顺序表L中查找元素e并返回其位置 } 

10、3、本程序包含三个模块1)主程序模块:协调各函数的调用,实现所要求的功能;2)顺序表模块:实现线性表顺序存储后的基本操作;3)单链表模块:实现线性表链式存储后的基本操作。4、各模块之间的调用关系如下:主程序模块顺序表模块单链表模块四、详细设计1、顺序表的元素类型typedefstruct{int*elem;intlength;intlistsize;}SqList;2、顺序表的基本操作intInitlist_Sq(SqList*L)//构造一个新的线性表//如果没有开辟成功返回错误voidLis

11、tInsert_Sq(SqList*L,inti,inte)//在第i个位置插入元素evoidlistshow_Sq(SqList*L)//输出顺序表元素intlocate_Sq(SqList*L,inte)//查找元素e,并返回其位置intListDelete_Sq(SqList*L,inti,int*e)//删除第i个位置上的元素,并返回其元素其中部分操作的伪码算法如下:intListDelete_Sq(SqList*L,inti,int*e)//删除第i个位置上的元素,并返回其元素{int

12、j;if((i<1)

13、

14、(i>L->length))returnERROR;*e=L->elem[i-1];j=i-1;while(jlength){L->elem[j]=L->elem[j+1];j++;}L->length--;}3、单链表的元素类型,结点类型和指针类型typedefstructLNode{intdate;structLNode*next;}LNode,*LinkList;4、单链表的基本操作voidCreateList_L1(LNode*l)//初始化链表intLi

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

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

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