数据结构线性表.ppt
《数据结构线性表.ppt》由会员分享,可在线阅读,更多相关《数据结构线性表.ppt(57页珍藏版)》请在第壹文秘上搜索。
1、 CH2 线性表线性表n2.1 线性表的逻辑结构线性表的逻辑结构 n2.2 线性表的顺序存储及运算实现线性表的顺序存储及运算实现n2.3 线性表的链式存储和运算实现线性表的链式存储和运算实现n2.4 线性表的两种存储结构的比较线性表的两种存储结构的比较n2.5 线性表的应用举例线性表的应用举例n教学目标教学目标n线性表的逻辑结构特征;线性表上定义的基本运算,并线性表的逻辑结构特征;线性表上定义的基本运算,并利用基本运算构造出较复杂的运算。利用基本运算构造出较复杂的运算。n掌握顺序表的含义及特点,顺序表上的插入、删除操作掌握顺序表的含义及特点,顺序表上的插入、删除操作及其平均时间性能分析,解决简
2、单应用问题。及其平均时间性能分析,解决简单应用问题。n掌握链表如何表示线性表中元素之间的逻辑关系;单链掌握链表如何表示线性表中元素之间的逻辑关系;单链表、双链表、循环链表链接方式上的区别;单链表上实表、双链表、循环链表链接方式上的区别;单链表上实现的建表、查找、插入和删除等基本算法及其时间复杂现的建表、查找、插入和删除等基本算法及其时间复杂度。循环链表上尾指针取代头指针的作用,以及单循环度。循环链表上尾指针取代头指针的作用,以及单循环链表上的算法与单链表上相应算法的异同点。双链表的链表上的算法与单链表上相应算法的异同点。双链表的定义和相关算法。利用链表设计算法解决简单应用问题。定义和相关算法。
3、利用链表设计算法解决简单应用问题。n领会顺序表和链表的比较,以及如何选择其一作为其存领会顺序表和链表的比较,以及如何选择其一作为其存储结构才能取得较优的时空性能。储结构才能取得较优的时空性能。n教学重点与难点教学重点与难点n本章的重点是掌握顺序表和单链表上实现的各种本章的重点是掌握顺序表和单链表上实现的各种基本算法及相关的时间性能分析;基本算法及相关的时间性能分析;n难点是使用本章所学的基本知识设计有效算法解难点是使用本章所学的基本知识设计有效算法解决与线性表相关的应用问题。决与线性表相关的应用问题。n教学方法教学方法n课堂讲授课堂讲授n提问互动提问互动n实验实验n定义定义:n线性表(线性表(
4、linear list) ( a1,a2, , an ) 其中其中:n :数据元素的个数或:数据元素的个数或线性表的长度线性表的长度;ai : 是一个抽象的符号,它的数据类型设定为是一个抽象的符号,它的数据类型设定为ElemType,表示某一种具体的已知数据类型(表示某一种具体的已知数据类型(1in) 。2.1 线性表的类型定义线性表的类型定义n非空线性表的特征(非空线性表的特征(P18)n 有且仅有一个开始结点有且仅有一个开始结点(表头结点表头结点 head)a1,它没有直,它没有直接前驱,只有一个直接后继接前驱,只有一个直接后继;n 有且仅有一个终端结点有且仅有一个终端结点(表尾结点表尾结
5、点tail)an,它没有直接,它没有直接后继,只有一个直接前驱后继,只有一个直接前驱;n 其它结点都有一个直接前驱和直接后继;其它结点都有一个直接前驱和直接后继;n 元素之间为元素之间为一对一一对一的线性关系。的线性关系。线性表的抽象数据类型定义(线性表的抽象数据类型定义(P18 ) ADT List 数据对象:数据对象:D=ai|aiElemSet;1in,n0; 数据关系:数据关系:R=| ai, ai+1D,i=1,2,n-1 基本操作:基本操作:InitList(&L) ListLength(L) GetElem(L,i,&e) PriorElem(L,cur_e,&pre_e) Ne
6、xtElem(L,cur_e,&next_e)LocateElem(L,e,compare() ListInsert(&L,i,e) ListDelete(&L,i,&e) ADT List算法算法2.1(线性表的首尾合并)(线性表的首尾合并)void union(List &La,List Lb) La_len=ListLength(La);Lb_len=ListLength(Lb) ; for(i=1;i=Lb_len;i+) GetElem(Lb,i,e); if (!LocateElem(La,e,equal) ListInsert(La,+La_len,e); /union 算法分析
7、:算法分析: 设设LocateElem的执行时间与表长成正比,的执行时间与表长成正比, 即:算法的时间复杂度为:即:算法的时间复杂度为:O(ListLength(La) * ListLength(Lb)算法算法2.2(有序线性表的合并)(有序线性表的合并)void MergeList(List La,List Lb,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); GetElem(Lb,j,bj
8、); if (ai=bj) ListInsert(Lc,+k,ai); +i; else ListInsert(Lc,+k,bj);+j; while (i=La_len) GetElem(La,i+;ai); ListInsert(Lc,+k,ai); while (j=Lb_len) GetElem(Lb,j+;bj); ListInsert(Lc,+k,bj);/MergeList2.2 线性表的顺序存储结构线性表的顺序存储结构n一、特点一、特点1.用一组地址用一组地址连续连续的存储单元依次存放线性的存储单元依次存放线性表中的元素;表中的元素;2.以元素在机内的以元素在机内的“物理位置相
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 线性
