数据结构总复习课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据结构总复习课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 复习 课件
- 资源描述:
-
1、数数 据据 结结 构构西南民院计算机系西南民院计算机系 TEL TEL 1361809782613618097826EmEmailliu-li-ailliu-li- 结束第 2 页题型题型1 1 选择题选择题 2 2 填空题填空题 3 3 解答题解答题 4 4 算法题算法题 结束第 3 页结束第 4 页第一章第一章 绪绪 论论计算机的发展计算机的发展硬件硬件 CPUCPU、内、外存储器等内、外存储器等软件软件:系统软件、应用软件:系统软件、应用软件应用应用 科学计算科学计算 数据处理数据处理 过程控制等过程控制等处理数据的能力和种类处理数据的能力和种类:数值:数值 字符、字符串字符、字符串 具
2、有多个属性对象具有多个属性对象 图形图形 图像图像 声音声音 结束第 5 页数据结构数据结构的研究对象的研究对象: 非数值数据之间的结构关系,如何表示,非数值数据之间的结构关系,如何表示,如何存储,如何处理的问题。如何存储,如何处理的问题。 本课程讨论的问题:本课程讨论的问题: 应用中常用的几种数据结构,以及如何存储应用中常用的几种数据结构,以及如何存储, , 如何处理它们。如何处理它们。第一章第一章 绪绪 论论结束第 6 页1 1 数据数据:客观对象的:客观对象的符号表示符号表示。 例如:课程名,地名,书名都是数据例如:课程名,地名,书名都是数据2 2 数据结构:数据结构:带有带有结构和操作
3、结构和操作的数据元素集合的数据元素集合 结构:数据元素之间的关系;结构:数据元素之间的关系; 操作:对数据的加工处理操作:对数据的加工处理 ; 第一章第一章 绪绪 论论结束第 7 页第一章第一章 绪绪 论论3 3 数据的逻辑结构数据的逻辑结构 :数据之间的:数据之间的结构关系结构关系,是,是具体关系的抽象。具体关系的抽象。4 4 常用的有下列几类基本结构:常用的有下列几类基本结构: (1 1)集合)集合 (2 2)线性结构)线性结构 (3 3)树结构)树结构 (4 4)图结构)图结构 (5 5)其它复杂结构)其它复杂结构5 5 数据结构的基本操作:数据结构的基本操作:也叫基本运算:是指对也叫基
4、本运算:是指对数据结构的加工处理;数据结构的加工处理;结束第 8 页第一章第一章 绪绪 论论6 6 数据的存储结构:数据的存储结构: 数据结构在计算机数据结构在计算机内存中的表示内存中的表示。7 7 顺序顺序存储结构存储结构 用一组用一组连续的内存单元连续的内存单元存放数据元素,用元存放数据元素,用元素素相对的存储位置相对的存储位置表示元素之间的结构关系;表示元素之间的结构关系;8 8 链式存储结构链式存储结构 用用任意一组存储单元任意一组存储单元存储数据元素,对每个存储数据元素,对每个数据元素除了保存自身信息外,还保存相关元素数据元素除了保存自身信息外,还保存相关元素的的存储位置存储位置。
5、数据结构基本操作的实现:数据结构基本操作的实现:基本操作在计算机基本操作在计算机上的实现(方法)上的实现(方法)结束第 9 页9 9 数据结构的表示数据结构的表示 1 1 图示表示图示表示 2 2 二元组表示二元组表示图示表示:由顶点和边构成的图,其中图示表示:由顶点和边构成的图,其中顶点顶点表示表示数据数据 ,边边表示数据之间的结构关系;表示数据之间的结构关系;第一章第一章 绪绪 论论J JI IH HG GF FE ED DB BA AC C结束第 10 页二元组表示二元组表示 用一个二元组(用一个二元组(D D,S S)表示数据结构,其中表示数据结构,其中 D D 是数据元素集合,是数据
6、元素集合,S S 是是 D D 上关系的集合。上关系的集合。 D = AD = A,B B,C C,D D,E E,F F,G G,H H,I I,JJ S = R S = R R = R = A,B, A,B, , , 第一章第一章 绪绪 论论结束第 11 页第一章第一章 绪绪 论论10 10 算法的概念算法的概念 算法是求解问题的操作序列(或操作步骤)算法是求解问题的操作序列(或操作步骤)11 11 时间复杂度时间复杂度T T(n n) 以求解问题的基本操作(原操作)的执行次以求解问题的基本操作(原操作)的执行次数作为算法的时间度量数作为算法的时间度量 空间复杂度空间复杂度用执行算法所需的
7、辅助空间的大小作为算法所需用执行算法所需的辅助空间的大小作为算法所需空间的度量空间的度量结束第 12 页第一章练习题第一章练习题1 数据结构:带有结构和操作的数据元素集合。2 2 常用的数据结构常用的数据结构3 3数据结构的表示数据结构的表示4 数据的逻辑结构 :数据之间的结构关系,是具体关系的抽象。5数据结构的基本操作:也叫基本运算:是指对数据结构的加工处理;6数据的存储结构:数据结构在计算机内存中的表示7数据结构基本操作的实现:基本操作在计算机上的实现(方法)8顺序存储结构9链式存储结构10 算法的概念 算法是求解问题的操作序列(或操作步骤)。11 时间复杂度T(n) 以求解问题的基本操作
8、(原操作)的执行次数作为算法时间的度量结束第 13 页结束第 14 页 常用的数据结构常用的数据结构 1 1) 集合集合 2 2) 线性结构线性结构 3 3) 树结构树结构 4 4) 图结构图结构 5 5) 其它复杂结构其它复杂结构第二章线性表第二章线性表对每种数据结构,主要讨论如下两方面的问题对每种数据结构,主要讨论如下两方面的问题1 1 数据的逻辑结构,数据结构的基本操作;数据的逻辑结构,数据结构的基本操作;2 2 数据的存储结构,数据结构基本操作的实现数据的存储结构,数据结构基本操作的实现 结束第 15 页 第二章线性表第二章线性表线性数据结构:线性数据结构: 除第一个元素和最后一个元素
9、之外,其他除第一个元素和最后一个元素之外,其他元素都有且仅有一个元素都有且仅有一个直接前趋直接前趋,有且仅有一个,有且仅有一个直直接后继。接后继。结束第 16 页 2.1 2.1 线性表的概念线性表的概念 一一 线性表的逻辑结构线性表的逻辑结构在线性表中,除第一个元素和最后一个元素之外,在线性表中,除第一个元素和最后一个元素之外,其他元素都有且仅有一个其他元素都有且仅有一个直接前趋直接前趋,有且仅有一,有且仅有一个个直接后继。直接后继。2.1 2.1 线性表的概念线性表的概念 a a1 1 a a2 2a ai i- -1 a ai ia ai i+ +1 a an n结束第 17 页2 2线
10、性表的基本操作线性表的基本操作1 1 初始化操作初始化操作 InitListInitList(&L) (&L) 2 2 销毁操作销毁操作DetroyListDetroyList(&L)(&L)3 3 置空操作置空操作ClearListClearList(&L)(&L)4 4 判空操作判空操作ListEmptyListEmpty(L)(L)5 5 求表长操作求表长操作 ListLengthListLength(L) (L) 6 6 取元素操作:取元素操作:GetElemGetElem(L,i,&e)(L,i,&e)7 7 查找操作查找操作 LocateElemLocateElem(L,e,com
11、pare() (L,e,compare() 8 8 插入操作插入操作 ListInsertListInsert(&L,i,e )(&L,i,e )9 9 删除操作删除操作 ListDeleteListDelete(&L,i,&e )(&L,i,&e )10 10 遍历操作遍历操作 ListTraverseListTraverse(&L,visit() )(&L,visit() )2.1 2.1 线性表的概念线性表的概念结束第 18 页 2.2 2.2 线性表的顺序存储和实现线性表的顺序存储和实现一一 线性表的顺序存储结构线性表的顺序存储结构顺序表顺序表1 1 顺序表顺序表用一组连续的内存单元依
12、次存放线性用一组连续的内存单元依次存放线性表的数据元素表的数据元素。2 顺序表的类型定义顺序表的类型定义typedef structtypedef struct ElemType ElemType * *elemelem; /; /线性表存储空间基址线性表存储空间基址 int int length; /length; /当前线性表长度当前线性表长度 int listsizeint listsize; /; /当前分配的存储空间大小当前分配的存储空间大小 SqListSqList; ;结束第 19 页顺序表图示顺序表图示设设 A =A =(a a1 1,a,a2 2 , a, a3 3 , .
13、a, . an n )是一线性表,是一线性表,L L是是SqList SqList 类型的结构变量,用于存放类型的结构变量,用于存放 A A2.2 2.2 线性表的顺序存储和实现线性表的顺序存储和实现L.L.elemelemL.L.lenghtlenghtL.L.listsizelistsizen n9999 a a1 1 a a2 2a ai i-1-1 a ai ia ai i+1+1 a an n0 01 1i-2i-2i-1i-1i in-1n-19999 顺序表保存了哪些信息?结束第 20 页2.2 2.2 线性表的顺序存储和实现线性表的顺序存储和实现 顺顺序表序表保存了哪些信息?保
14、存了哪些信息?* *线性表中的数据元素;线性表中的数据元素;* *线性表中数据元素的顺序关系;线性表中数据元素的顺序关系;* *表中元素个数(简化算法)表中元素个数(简化算法)* *当前分配的存储空间当前分配的存储空间 顺顺序表序表如何保存这些信息?如何保存这些信息? 3 3 顺序表存储特点顺序表存储特点元素存储在元素存储在一组连续的内存单元中;一组连续的内存单元中;通过元素通过元素存储顺序存储顺序元素之的逻辑顺序;元素之的逻辑顺序;结束第 21 页二二 顺序表的基本操作算法顺序表的基本操作算法1 1 初始化算法初始化算法 InitListInitList_Sq( _Sq( SqListSqL
15、ist &L) &L)2 2 插入插入操作操作算法算法 ListInsert ListInsert_Sq(_Sq(SqListSqList &L, &L,intint i, i,ElemTypeElemType e) e)3 3 删除删除操作操作算法算法 ListDeleteListDelete_Sq(_Sq(SqListSqList &L, &L,intiinti, ,ElemTypeElemType &e) &e)2.2 2.2 线性表的顺序存储和实现线性表的顺序存储和实现结束第 22 页2.2 2.2 线性表的顺序存储和实现线性表的顺序存储和实现5 5 顺序表顺序表主要操作特点操作特点1
16、 1)可随机存取顺序表的元素)可随机存取顺序表的元素( (用用L.L.elemelemi-1i-1或或L.L.elemelem+(i-1)+(i-1)可直接定位元素可直接定位元素的存储地址的存储地址) )2 2)插入删除操作通过移动元素实现)插入删除操作通过移动元素实现结束第 23 页2 23 3 线性表的链式存储结构和实现线性表的链式存储结构和实现线性表的链式存储结构线性表的链式存储结构 用一组任意的存储单元存储线性表中的数据元素用一组任意的存储单元存储线性表中的数据元素,对每个数据元素除了保存自身信息外,还保存,对每个数据元素除了保存自身信息外,还保存了相关元素的存储位置。了相关元素的存储
17、位置。结束第 24 页2.3.1 .3.1 线性链表线性链表一一 线性链表的概念线性链表的概念1 1 线性链表线性链表 用一组任意的存储单元存储线性表中用一组任意的存储单元存储线性表中的数据元素,对每个数据元素除了保存自的数据元素,对每个数据元素除了保存自身信息外,还保存了直接后继元素的存储身信息外,还保存了直接后继元素的存储位置。位置。2 23 3 线性表的链式存储结构和实现线性表的链式存储结构和实现结束第 25 页typedef struct Lnode ElemType data; Struct Lnode *next;LNode, *LinkList; 数据域数据域指针域指针域 dat
18、a next L L2 2 线性链表的结点类型定义线性链表的结点类型定义 及指向结点的指针类型定义及指向结点的指针类型定义2. 3. 1 线性链表线性链表ai-1aia1an结束第 26 页2. 3. 1 线性链表线性链表3 3 线性链表存储特点线性链表存储特点1 1)用一组任意的存储单元存储线性表中的数据)用一组任意的存储单元存储线性表中的数据元素;元素;2 2) 通过保存直接后继元素的存储位置来表示数通过保存直接后继元素的存储位置来表示数据元素之间的逻辑关系;据元素之间的逻辑关系;结束第 27 页 二二 线性链表基本操作算法线性链表基本操作算法1 1 初始化操作初始化操作算法算法InitL
19、istInitList_L (_L (LinkListLinkList &L) &L)2 2 插入操作算法插入操作算法ListInsertListInsert_L(_L(LinkListLinkList &L, &L,intiinti, ,ElemTypeElemType e) e)3 3 删除操作算法删除操作算法ListInsertListInsert_L(_L(LinkListLinkList &L, &L,intiinti, ,ElemTypeElemType &e) &e) 2. 3. 1 线性链表线性链表结束第 28 页2. 3. 1 线性链表线性链表5 5 线性链表操作主要特点线性
20、链表操作主要特点1 1)不能随机存取元素;)不能随机存取元素; 2 2)插入、删除操作通过修改结点的指针实现;)插入、删除操作通过修改结点的指针实现; 结束第 29 页 循环链表循环链表 循环链表的特点是将线性链表的最后一个结循环链表的特点是将线性链表的最后一个结点的指针指向链表的第一个结点点的指针指向链表的第一个结点 aia1ai+1ai-1anaiai+1ai-1anL L2.3.2 2.3.2 循环链表循环链表结束第 30 页 双向链表双向链表 双向链表中,每个结点有两个指针域,一个双向链表中,每个结点有两个指针域,一个指向直接后继元素结点,另一个指向直接前趋元指向直接后继元素结点,另一
21、个指向直接前趋元素结点。素结点。2.3.3 2.3.3 双向链表双向链表L Lai ia1 1a ai i- -1 1an n结束第 31 页 线性表的其他操作的实现线性表的其他操作的实现1) 1) 通过调用基本操作算法通过调用基本操作算法2) 2) 直接实现直接实现线性表的其他操作的实现线性表的其他操作的实现结束第 32 页第二章练习题第二章练习题; 线性表的逻辑结构:在线性表中,除第一个元线性表的逻辑结构:在线性表中,除第一个元素和最后一个元素外,其他元素都素和最后一个元素外,其他元素都有且仅有一有且仅有一个个直接前趋,直接前趋,有且仅有一个有且仅有一个直接后继。直接后继。 顺序表存储特点
22、:顺序表存储特点:1 1)元素存储在)元素存储在一组连续一组连续的内存单元中的内存单元中2 2)通过元素的)通过元素的存储顺序存储顺序反映线性表中数据元素反映线性表中数据元素之的逻辑顺序;之的逻辑顺序;顺序表操作特点:顺序表操作特点:1 1)可随机存取可随机存取顺序表的元素;顺序表的元素;2 2)顺序表的插入删除操作要通过)顺序表的插入删除操作要通过移动元素移动元素实现实现 结束第 33 页第二章练习题第二章练习题线性链表存储特点线性链表存储特点1 1)用用任意一组任意一组的存储单元存储线性表中的数据的存储单元存储线性表中的数据元素;元素;2) 通过保存通过保存直接后继元素的存储位置直接后继元
23、素的存储位置来表示数来表示数据元素之间的逻辑关系;据元素之间的逻辑关系;线性链表操作特点线性链表操作特点1 1)不能随机不能随机存取元素;存取元素; 2 2)插入、删除操作通过)插入、删除操作通过修改结点的指针修改结点的指针实现;实现;顺序表的插入、删除操作平均要移动表的顺序表的插入、删除操作平均要移动表的一半一半元素元素 结束第 34 页第二章练习题第二章练习题顺序表能随机存取元素的原因是:顺序表能通顺序表能随机存取元素的原因是:顺序表能通过过L.L.elemelemi-1i-1或或L.L.elemelem+(i-1)+(i-1)直接直接定位元素的定位元素的存储地址。存储地址。线性链表不能随
24、机存取元素的原因是:线性链表不能随机存取元素的原因是: 需从需从线性链表的线性链表的头指针开始,顺着链指针头指针开始,顺着链指针定位元素的定位元素的存储地址存储地址对于经常要存取元素的应用对于经常要存取元素的应用,线性表应采用线性表应采用顺顺序序存储结构存储结构10 10 对于经常要插入删除元素的应用,线性表应对于经常要插入删除元素的应用,线性表应采用采用链式链式存储结构存储结构结束第 35 页结束第 36 页 栈是限定仅能在表尾进行插入删除操作的线栈是限定仅能在表尾进行插入删除操作的线性表。性表。(a a1 1,a,a2 2.a ai i-1-1, ,a ai i , ,a ai i+1+1
25、, ,a,an n )栈栈底底栈栈顶顶插入插入删除删除栈的特点栈的特点后进先出后进先出3.1 3.1 栈栈一一. .栈的概念栈的概念1 1 栈的定义栈的定义结束第 37 页 3.1 3.1 栈栈2 2 栈的基本操作栈的基本操作 1 1) 初始化操作初始化操作InitStackInitStack(&S)(&S) 2 2)销毁栈操作销毁栈操作DestroyStackDestroyStack(&S)(&S) 3 3)置空栈操作)置空栈操作ClearStackClearStack(&S)(&S) 4 4)取栈顶元素操作)取栈顶元素操作GetTopGetTop(S, &e)(S, &e) 5 5)进栈操
展开阅读全文