中国科学技术大学:《数据结构》课程教学资源(PPT课件讲稿)第三章 线性表

③第三章线性表 3.1线性表的类型定义 32顺序存储的线性表 3.3链式存储的线性表 34有序表 3.5顺序表和链表的综合比较 pboustc. edu. cn 中国科学技术大学
ypb@ustc.edu.cn 1 中国科学技术大学 第三章 线性表 3.1 线性表的类型定义 3.2 顺序存储的线性表 3.3 链式存储的线性表 3.4 有序表 3.5 顺序表和链表的综合比较

(B3.1线性表的类型定义 3.1线性表的定义 线性表是n(n>=0)个数据元素的有限序列,表中 各个元素具有相同地属性,表中相邻元素间存 在“序偶”关系。 记做:(a1,a2,a1a1a11…,an1an) a1称为a1的直接前驱元素,a*1是a的直接后继 元素 线性表的长度:表中的元素个数n 位序:i元素a在线性表中的位序 pboustc. edu. cn 中国科学技术大学
ypb@ustc.edu.cn 2 中国科学技术大学 3.1线性表的类型定义 3.1.1线性表的定义 线性表是n(n>=0)个数据元素的有限序列,表中 各个元素具有相同地属性,表中相邻元素间存 在“序偶”关系。 记做:(a1 ,a2 ,…….ai-1 ,ai ,ai+1 ,…,an-1 ,an ) ai-1称为ai 的直接前驱元素,ai+1是ai的直接后继 元素 线性表的长度:表中的元素个数 n 位序:i称元素ai在线性表中的位序

G3.12线性表的基本操作 Initlist(&l) Destroy(&l) Clearlist(&l Listempty(l ListLength(L GetElem(l,i, &e 1 ListLength(l Locateltem(l,e) PriorElem(l, cur e, &pre e) NextElem l, cur e, &next e) ListInsert(&l,i, e) 1<=i<= ListLength(l)+ ListDelete(&l, i, &e)1<=k<= Listlength l) ListTraverse(l pboustc. edu. cn 中国科学技术大学
ypb@ustc.edu.cn 3 中国科学技术大学 InitList(&L) Destroy(&L) ClearList(&L) ListEmpty(L) ListLength(L) GetElem(L,i,&e) 1<=i<= ListLength (L) LocateItem(L,e) PriorElem(L,Cur_e,&pre_e) NextElem(L,cur_e,&next_e) ListInsert(&L,i,e) 1<=i<= ListLength (L)+1 ListDelete(&L,i,&e) 1<=i<= ListLength (L) ListTraverse(L) 3.1.2线性表的基本操作

【例3.4】对两个线性表La、Lb表示的集合A和B,求 一个新集合A=AUB算法3.1四 a)从Lb中取一个元素,并删除 b)在La中查询 c)若La中不存在,则将其插入La,重复直至Lb空 【例3.5】对两个线性表La、Lb表示的集合A和B,求 A=A-B算法3.2D a)从Lb中取一个元素,并删除 b)在La中查询 c)若La中存在,则将从La删除,重复直至Lb空 pboustc. edu. cn 中国科学技术大学
ypb@ustc.edu.cn 4 中国科学技术大学 【例3.4】对两个线性表La、Lb表示的集合A和B,求 一个新集合A=AUB 算法3.1 a) 从Lb中取一个元素,并删除 b) 在La中查询 c) 若La中不存在,则将其插入La,重复直至Lb空 【例3.5】对两个线性表La、Lb表示的集合A和B ,求 A=A-B 算法3.2 a) 从Lb中取一个元素,并删除 b) 在La中查询 c) 若La中存在,则将从La删除,重复直至Lb空

③32线性表的顺序表示和实现 321顺序表线性表的顺序存储表示 Const List INit size=100;(C++规范) Const LIStincrement=10 # define listⅠ NIT SIZE100(C规范) typ pede struct Elemtype elem int length int listsIze Incrementsize ISalist pboustc. edu. cn 5 中国科学技术大学
ypb@ustc.edu.cn 5 中国科学技术大学 3.2线性表的顺序表示和实现 3.2.1顺序表——线性表的顺序存储表示 Const LIST_INIT_SIZE=100; (C++规范) Const LISTINCREMENT=10; #define LIST_INIT_SIZE 100 (C规范) typedef struct { Elemtype * elem; int length; int listsize; int incrementsize; }SqList;

③3.22顺序表中基本操作的实现 初始化操作 Initlist Sq 算法3.3四 销毁操作 Destroylist sq 算法34 是否为空 ListEmpy sc 算法3.5心 是否满 ListFull Sq 算法36 求长度 ListLength sq 算法3.7 查找元素操作 LocateElem Sq 算法38 获取元素操作 GetItem Sq 算法3.9 插入元素操作 ListInsert Sq算法3.10时间复杂度O(n 删除元素操作 List Delete Sq算法3.11时间复杂度O(n) 插入和删除操作的时间分析: Ein=2pi(n-i+1)=n/2 Edl-=2qi(n-1=(n-1)/2 pboustc. edu. cn 6 中国科学技术大学
ypb@ustc.edu.cn 6 中国科学技术大学 初始化操作 InitList_Sq 算法3.3 销毁操作 DestroyList_Sq 算法3.4 是否为空 ListEmpy_Sq 算法3.5 是否满 ListFull_Sq 算法3.6 求长度 ListLength_sq 算法3.7 查找元素操作LocateElem_Sq 算法3.8 获取元素操作GetItem_Sq 算法3.9 插入元素操作ListInsert_Sq 算法3.10 时间复杂度O(n) 删除元素操作ListDelete_Sq 算法3.11 时间复杂度O(n) 插入和删除操作的时间分析: Ein=Σpi(n-i+1)=n/2 Edl=Σqi(n-i)=(n-1)/2 3.2.2顺序表中基本操作的实现

③ 查找元素操作算法3时间复杂度Om) 例如:顺序表 Lelem listsize 23754138546217 length =7 i|8 e=38 返回值=4 e=50 返回值=0 pboustc. edu. cn 中国科学技术大学
ypb@ustc.edu.cn 7 中国科学技术大学 查找元素操作 算法3.8 时间复杂度O(n) 例如:顺序表 23 75 41 38 54 62 17 L.elem L.length = 7 L.listsize e = 38 p p p p p i 12348 e = 50 p 返回值 = 4 返回值 = 0

③插入元素操作时间复杂度O(n 1>…ai-19“i;… an)改变为 a e. a i-1c9 1 , a 1a2 a ●● n a a 1a2 ●●● e a ●●● 表的长度增加 pboustc. edu. cn 8 中国科学技术大学
ypb@ustc.edu.cn 8 中国科学技术大学 (a1 , …, ai-1 , ai , …, an ) 改变为 a1 a2 … ai-1 ai … an a1 a2 … ai-1 e ai … an , 表的长度增加 (a1 , …, ai-1 , e, ai , …, an ) 插入元素操作 算法3.10 时间复杂度O(n)

③删除元素操作算法时间复杂度om) 19i9 i+12 ,an)改变为 ∠8;-1 a: 9 i+l a;1;a g i+l a a:1 a: a i+1 ●●● a2 a: 1 a 1ai+1 n 表的长度减少 pboustc. edu. cn 中国科学技术大学
ypb@ustc.edu.cn 9 中国科学技术大学 删除元素操作 算法3.12 时间复杂度O(n) (a1 , …, ai-1 , ai , ai+1, …, an ) 改变为 ai+1 … an , 表的长度减少 a1 a2 … ai-1 ai ai+1 … an a1 a2 … ai-1 (a1 , …, ai-1 , ai+1, …, an )

③3.3顺序表其它算法举例 例36用顺序表表示集合,完成例3.4。 算法3.3时间复杂度O(n2) 例3.10用尽量少得辅助空间将前m个元素和后n 个元素互换 算法325 exchange l时间复杂度:Om×n)四 算法3.26 invert时间复杂度:O(ts+1) 算法3.27 exchange2时间复杂度:Omn)D pboustc. edu. cn 10 中国科学技术大学
ypb@ustc.edu.cn 10 中国科学技术大学 例3.6 用顺序表表示集合,完成例3.4。 算法3.13 时间复杂度O(n2 ) 例3.10 用尽量少得辅助空间将前m个元素和后n 个元素互换 – 算法3.25 exchange1 时间复杂度:O(m×n) – 算法3.26 invert 时间复杂度:O(t-s+1) – 算法3.27 exchange2 时间复杂度:O(m+n) 3.2.3顺序表其它算法举例
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《计算机网络》课程PPT教学课件(Windows)第09讲 DNS服务.ppt
- 《软件工程》课程教学资源(PPT课件讲稿)第12章 软件开发工具StarUML及其应用.ppt
- 西华大学:《电子商务概论》课程教学资源(PPT课件讲稿)第7章 电子商务物流.ppt
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(PPT课件讲稿)第六讲 死锁及其处理.ppt
- 电子科技大学:《网络安全与网络工程》课程教学资源(PPT课件讲稿)第六章 杂凑函数(主讲:聂旭云).ppt
- 某高校计算机专业课程教学大纲合集(汇编).pdf
- 上海交通大学:操作系统安全(PPT课件讲稿)操作系统安全 OS Security(邹恒明).pps
- 《Computer Networking:A Top Down Approach》英文教材教学资源(PPT课件讲稿,3rd edition)Chapter 5 Link Layer and LANs.pps
- 《计算机网络安全》课程电子教案(PPT教学课件)第一章 计算机网络安全概述.ppt
- 并发程序精化验证及其应用(PPT讲稿)Refinement Verification of Concurrent Programs and Its Applications.pptx
- 《单片机原理与其应用》课程教学资源(PPT课件讲稿)第8章 单片机的存储器的扩展.pptx
- 南京大学:模型检验(PPT课件讲稿)model checking.pptx
- 苏州大学:《中文信息处理》课程教学资源(PPT课件讲稿)第二章 汉字代码体系.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第4章 选择结构程序设计.ppt
- 《机器学习》课程教学资源(PPT课件讲稿)第六章 特征降维和选择.ppt
- 数据挖掘实现的住院病人的实时预警(PPT讲稿)Real-Time Clinical Warning for Hospitalized Patients via Data Mining.pptx
- 《PHP程序设计》教学资源(PPT课件讲稿)项目四 面向对象网站开发.ppt
- 《软件工程》课程教学资源(PPT课件讲稿)第3章 软件需求分析.ppt
- 四川大学:《操作系统 Operating System》课程教学资源(PPT课件讲稿)Chapter 3 Process Description and Control.ppt
- 随机图与复杂网络(PPT讲稿)随机演化博弈的算法研究及其在复杂网络中的应用.ppt
- 西安理工大学:面向主题的服务(PPT讲稿)综合集成支撑平台业务化——互联网信息化(平台、内容、服务).ppt
- 《数据科学》课程教学资源(PPT课件讲稿)第2章 数据预处理.ppt
- 《计算机组成原理》课程教学资源(PPT课件讲稿)第2章 运算方法和运算器.ppt
- 《数据库系统原理》课程PPT教学课件(SQLServer)第12章 并发控制.ppt
- 关键词抽取、社会标签推荐及其在社会计算中的应用.pptx
- 克里特大学:The Application of Artificial Neural Networks in Engineering and Finance.ppt
- 山东大学:IPv6试商用的进展和挑战(PPT讲稿,网络与信息中心:秦丰林).pptx
- 清华大学:域内路由选择(PPT课件讲稿)Intra-domain routing.pptx
- 清华大学:TCP and Congestion Control(1).pptx
- 《人工智能技术导论》课程教学资源(PPT课件讲稿)第3章 图搜索与问题求解.ppt
- 《网页设计》课程教学资源:课程教学大纲.doc
- 西安电子科技大学:《操作系统 Operating Systems》课程教学资源(PPT课件讲稿)Chapter 04 Memory Management.ppt
- 中国水利水电出版社:《单片机原理及应用》课程PPT教学课件(C语言版)第8章 单片机系统扩展(主编:周国运).ppt
- 《Photoshop基础教程与上机指导》教学资源(PPT讲稿)第18章 扫描和修饰图像.ppt
- 西安电子科技大学:《现代密码学》课程教学资源(PPT课件讲稿)第二章 流密码(主讲:董庆宽).pptx
- 北京大学:《高级软件工程》课程教学资源(PPT课件讲稿)第一讲 软件与软件开发.ppt
- 东南大学:《数据结构》课程教学资源(PPT课件讲稿)第七章 图.ppt
- 《The C++ Programming Language》课程教学资源(PPT课件讲稿)Lecture 02 Procedure-Based Programming.ppt
- 《数据库原理与应用》课程PPT教学课件(SQL Server)第9章 存储过程和触发器.ppt
- 合肥学院:《数据库原理与应用》课程教学资源(PPT课件)第1章 数据库系统概述(主讲:叶潮流).ppt