第二章+线性表

第二章+线性表

ID:44972590

大小:942.00 KB

页数:110页

时间:2019-11-06

第二章+线性表_第1页
第二章+线性表_第2页
第二章+线性表_第3页
第二章+线性表_第4页
第二章+线性表_第5页
资源描述:

《第二章+线性表》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第二章线性表☞2.1线性表的类型定义2.2线性表的顺序表示和实现2.3线性表的链式表示和实现2.4线性表的应用2.1线性表的类型定义线性结构的基本特征:集合中必存在唯一的一个“第一元素”;集合中必存在唯一的一个“最后元素”;除最后元素之外,均有唯一的后继;除第一元素之外,均有唯一的前驱。从逻辑上:数据之间的关系可以分4类:线性结构,树型结构,图状结构,集合线性表最简单的一种线性结构一个线性表是n个数据元素的有限序列比如AB……Z英文字母表比如001高等数学华罗庚S01……002线性代数銮汝书L01……003高等数学郑杭生S01…

2、…004离散数学耿素云S02………………………………线性表中每个数据元素的具体含义,各不相同,数据元素是基本单位,一个数据元素由若干个数据项组成2.1线性表的类型定义线性表记为(a1,……,ai-1,ai,ai+1,……,an)ai-1在ai之前称ai-1是ai的前驱ai在ai-1之后称ai是ai-1的后继序列中数据元素的个数n定义为线性表的表长称i为ai在线性表中的位序i=2,……,n线性表的元素个数称为的表长,n=0时称为空表2.1线性表的类型定义线性表的抽象数据类型(ADT)定义如下:ADTList{数据

3、对象:D={ai

4、ai∈ElemSet,i=1,2,...,n,n>0}数据关系:R1={

5、ai-1,ai∈D,i=2,...,n}//表示为相邻元素的有序对基本操作:InitList(&L)操作结果:构造一个空的线性表L。DestroyList(&L)初始条件:线性表L已存在。操作结果:销毁线性表L,将原表中各结点所占的内存空间释放。引用型操作ListEmpty(L)初始条件:线性表L已存在。操作结果:若L为空表,则返回TRUE,否则FALSE。ListLength(L)初始条件:线性表L已存在。操作结果:返

6、回L中元素个数。PriorElem(L,cur_e,&pre_e)初始条件:线性表L已存在。操作结果:若cur_e是L的元素,但不是第一个,则用pre_e返回它的前驱,否则操作失败,pre_e无定义。NextElem(L,cur_e,&next_e)初始条件:线性表L已存在。操作结果:若cur_e是L的元素,但不是最后一个,则用next_e返回它的后继,否则操作失败,next_e无定义。LocateElem(L,e,compare())初始条件:线性表L已存在,compare()是元素判定函数。操作结果:返回L中第1个与e满足关

7、系compare()的元素的位序。若这样的元素不存在,则返回值为0。ListTraverse(L,visit())初始条件:线性表L已存在。操作结果:依次对L的每个元素调用函数visit()。一旦visit()失败,则操作失败。GetElem(L,i,&e)初始条件:线性表L已存在,1≤i≤LengthList(L)操作结果:用e返回L中第i个元素的值。PutElem(&L,i,e)初始条件:线性表L已存在,1≤i≤LengthList(L)操作结果:L中第i个元素赋e的值。ListDelete(&L,i,&e)初始条件:线性表

8、L已存在且非空,1≤i≤LengthList(L)操作结果:删除L的第i个元素,并用e返回其值,L的长度减1。ListInsert(&L,i,e)初始条件:线性表L已存在,1≤i≤LengthList(L)+1操作结果:在L的第i个元素之前插入新的元素e,L的长度增1。}ADTListClearList(&L)初始条件:线性表L已存在。操作结果:将L重置为空表。加工型操作算法2.1利用两个线性表LA和LB分别表示两个集合A和B,现要求一个新的集合A=A∪B。voidunion(List&La,ListLb){La_len=Lis

9、tLength(La);Lb_len=ListLength(Lb);for(i=1;i<=lb_len;i++){GetElem(lb,i,e);if(!LocateElem(la,e,equal))ListInsert(la,++la_en,e)}}时间复杂度O(ListLength(La)×ListLength(Lb))算法2.2巳知线性表LA和线性表LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的元素仍按值非递减有序排列。此问题的算法如下:voidmergelist(Listla,

10、Listlb,List&lc){InitList(lc);i=j=1;k=0;la-len=ListLength(la);lb-len=ListLength(lb);while((i<=la-len)&&(j<=lb-len)){GetElem(la,i,ai)

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

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

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