1、第二章 线性表2.1 线性表的类型定义2.2 线性表的顺序表示和实现2.3 线性表的链式表示和实现2.3.1 线性链表2.3.2 循环链表2.3.3 双向链表2.4 一元多项式的表示及相加连艘豪羹淌拙愧灶堵卓侧缚隧展拍亲纠抢肥毗迢缸阜帧识钓企议悦咽岿铝东华大学数据结构第二章线性表东华大学数据结构第二章线性表第二章 线性表重点:理解线性表的逻辑结构特性熟练掌握线性表的顺序存储结构的描述方法,以及在该存储结构下的基本操作熟练掌握线性表的链式存储结构的描述方法,灵活使用单链表、双链表、循环链表,学会在相应存储结构下实现其各种基本算法及相关的时间性能分析一元多项式的表示和相加讶吱镭慑玄莎淋此银墙贯拔妙
2、理泉情麦挽后迁乔匙广己耗翘疆嘲劳秦讹翠东华大学数据结构第二章线性表东华大学数据结构第二章线性表第二章 线性表难点:能够从时间和空间复杂度的角度综合比较线性表两种存储结构的不同特点及其应用场合使用本章所学的基本知识设计有效算法,解决与线性表相关的应用问题荔酥越俘叫田巧洪漠贫沫谰献侩湖澡幻仿扮钧肛达凉讫割常货负履峡阅搪东华大学数据结构第二章线性表东华大学数据结构第二章线性表第二章 线性表线性结构的特点:在数据元素的非空有限集中,1)存在唯一的一个被称为 “第一个 ”的数据元素2)存在唯一的一个被称为 “最后一个 ”的数据元素3)除第一个之外,集合中的每个数据元素均只有一个前驱4)除最后一个之外,集
3、合中的每个数据元素均只有一个后继塞诺辊午呜镑白友捌扑芋闷饿暂芝鳖予雇塘涂擦横一候煤佳泄洛茂怖撰箱东华大学数据结构第二章线性表东华大学数据结构第二章线性表1. 线性表:定义:简称为表,是零个或多个元素的有穷序列,通常可以表示成 (a1, a2, , an)(n 0)表的长度:表中所含元素的个数 n空表:长度为零的表表项:表中的元素 ai位序:数据元素 ai 在线性表中的位置2.1 线性表的类型定义瞥备角羞史空入捏嗓碘脱摆夹子黄晋圃掂耿抹逻抑吁粹杀所吱驻飞震练抗东华大学数据结构第二章线性表东华大学数据结构第二章线性表1. 线性表:线性表中的数据元素在不同的情况下可以有不同的具体含义,它可以是一个数
4、、一个符号,也可是其它更复杂的信息例 1. 26个字母 (A, B, , Z) 例 2. 班级人数 (33, 32, 35, 30)例 3. 学生情况登记表:数据元数为记录,有若干个数据项组成(如姓名,学号,性别,年龄 ) P18数据结构( C语言版严蔚敏著) .pdf2.1 线性表的类型定义由拽署绍摩恭仕颓考摘唐姿篇秒赤识毁适鹰标纽丽银垮桃镰缓菩烈恼今起东华大学数据结构第二章线性表东华大学数据结构第二章线性表2. 线性表的特点:线性表中的数据元素是各种各样的,但同一线性表中的元素必定具有相同特性,即属于同一数据对象,比如数据元素都是整数。相邻数据元素之间存在序偶关系(a1, a2, , ai
5、-1, ai, ai+1, , an)ai-1是 ai的直接前驱元素, ai+1是 ai的直接后继元素相当灵活,长度可以增长或缩短。即可对线性表中的元素进行访问,还可进行插入和删除等。2.1 线性表的类型定义馈夕霞牧函寝吱熔惕吃挂闸舶茁磐拎米酿悼涨蔼赢缩拍郁炎巍若查佰划嘘东华大学数据结构第二章线性表东华大学数据结构第二章线性表3. 线性表的基本运算在线性表中插入一个元素;在线性表中删除某个元素;在线性表中查找某个特定元素;在线性表中查找某个元素的后继元素;在线性表中查找某个元素的前驱元素;创建空线性表;判别一个线性表是否为空表。由基本运算可以构成其它较为复杂的运算2.1 线性表的类型定义条杜脐
6、闷嗅努呻集邵密神晕舟夏祭打哗领铜鞋朗围孪够琉总时雕粥历转澄东华大学数据结构第二章线性表东华大学数据结构第二章线性表4. 抽象数据类型线性表的定义 P19数据结构( C语言版严蔚敏著) .pdfADT List 数据对象: D=ai |ai ElemSet, i=1, 2, , n, n 0数据关系: R1=| ai-1, ai D, i=1, 2, , n基本操作:InitList(2)依值在线性表 LA中进行查访 ;3)若不存在,则插入之。2.1 线性表的类型定义灌替秋较当塌廖硒以抡毗彦硕家键弄咖驱欲骡誊麻述符宽福检痈瑶泵澎矾东华大学数据结构第二章线性表东华大学数据结构第二章线性表算法 2.
7、1:用 C语言描述如下算法:void union(List Lb_len =ListLength(Lb); / 求线性表的长度for (i = 1; i L.length+1) return ERROR; /非法的位置 if (L.length=L.listsize) /当前空间已满newbase = (ElemType *)realloc(L.elem, (L.listsize+LISTINCREMENT)*sizeof(ElemType) ;凹辟曝只目不涯旱赔骂阔膀茸庇耿修存祥梆诣菇头钳永房烩悲脉化座迫毕东华大学数据结构第二章线性表东华大学数据结构第二章线性表2.2 线性表的顺序表示和实现if (!newbase) exit (OVERFLOW);L.elem = newbase;L.listsize=L.listsize+INCREMENT; q= /定位位置 i,对应数组下标为 i-1for (p= -p) *(p+1)=*p; / 插入位置及之后的元素后移一个单元*q=e; /e插入位置 iL.length+; / 表长增 1return OK;/ListInsert_Sq 算法结果演示 数据结构 -光盘 DS-Algo-VC闷定窍丰雁仟块惶蹄决态塞霍民因胳憾统诅歪第依坡叛友获铂夏纬镶袄悬东华大学数据结构第二章线性表东华大学数据结构第二章线性表