《数据结构》全册配套课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《数据结构》全册配套课件.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 配套 课件
- 资源描述:
-
1、数据结构全册配套课件数据结构全册配套课件2022-1-162022-1-16数据结构2数据结构数据结构 2022-1-16数据结构3教材教材:严蔚敏,吴伟民:严蔚敏,吴伟民:数据结构数据结构,第三版,第三版,清华大学出版社,清华大学出版社,1992年年课程安排:课程安排:总总18周,授课周,授课16周,最后两周考核周,最后两周考核预备知识:预备知识:熟练掌握熟练掌握C或或C+语言,尤其是语言,尤其是指针指针和和类类2022-1-16数据结构4开设和学习本课程的意义所在:n生产方式的变革:材料、能源、信息;材料和能源的迅速减少,使得人们最终将开发和应用的重点日益转向到信息中来;n人们必须更加集约
2、地利用地球上有限的物质资源,同时,必须掌握更加有效的加工自然物手段 高新技术;n信息技术(Information Technology,简称IT)一直处于高新技术的核心地位;2022-1-16数据结构5计算机硬件技术计算机软件技术计算机通信技术数据的组成常用的算法软件设计和开发软件的实现原理和技术IT计算机软件技术数据的组成常用的算法软件的实现原理和技术2022-1-16数据结构6n加强“每一种数据结构都存在代价与效益”的概念。n学习一些最基本、最常用的数据结构。n它们组成了一个程序员的基本数据结构工具箱(toolkit)。n掌握如何评估一个数据结构和算法的有效性。n这些技术也使程序员能够判断
3、自己或别人发明的新数据结构的价值。2022-1-16数据结构7 什么是数据结构 为什么要学习数据结构 如何评价一个算法2022-1-16数据结构8科学计算科学计算-非数值计算非数值计算数值数值-结构数据结构数据随着社会的发展,计算机应用的范围已经深入到社会的各个领域,计算机的应用已经不在局限于科学计算,而是更多用于控制、管理及数据处理等非数值计算。相应的计算机加工处理的对象由纯粹的数值发展到字符、表格和图像等具有一定结构的数据。为了编写一个好程序,必须分析待处理对象的特性以及各处理对象之间存在的关系。2022-1-16数据结构9n数据结构是介于数据结构是介于数学、计算机硬件和计算机软件数学、计
4、算机硬件和计算机软件三者三者之间的一门核心课程。之间的一门核心课程。2022-1-16数据结构10n1、算法和数据结构是计算机科学的两大支柱、算法和数据结构是计算机科学的两大支柱n计算机科学早期定义为:研究算法的科学计算机科学早期定义为:研究算法的科学n 近期定义为:研究数据的科学近期定义为:研究数据的科学n2、数据结构是程序设计的基础、数据结构是程序设计的基础n3、是信息类学科的专业基础课程。、是信息类学科的专业基础课程。算法数据结构程序算法数据结构程序 程序设计的程序设计的实质实质是对实际问题选择一种好的数据结构,是对实际问题选择一种好的数据结构,加之设计一个好的算法,而好的算法在很大程度
5、上取决加之设计一个好的算法,而好的算法在很大程度上取决于描述实际问题的数据结构于描述实际问题的数据结构2022-1-16数据结构111、掌握各类基本数据结构类型和相应的存储结构、掌握各类基本数据结构类型和相应的存储结构2、提高阅读和编写算法的能力、提高阅读和编写算法的能力3、能针对给定问题,选择相适应的数据结构,并能、能针对给定问题,选择相适应的数据结构,并能设计和分析算法。设计和分析算法。2022-1-16数据结构12n众所周知,计算机的程序是对信息进众所周知,计算机的程序是对信息进行加工处理。在大多数情况下,这些行加工处理。在大多数情况下,这些信息并不是没有组织,信息(数据)信息并不是没有
6、组织,信息(数据)之间往往具有重要的结构关系,这就之间往往具有重要的结构关系,这就是数据结构的内容。那么,什么是数是数据结构的内容。那么,什么是数据结构呢?先看以下几个例子据结构呢?先看以下几个例子。2022-1-16数据结构13例例1、电话号码查询系统、电话号码查询系统n 设有一个电话号码薄,它记录了设有一个电话号码薄,它记录了N个人的个人的名字和其相应的电话号码,假定按如下形式安名字和其相应的电话号码,假定按如下形式安排:排:n (a1,b1)(a2,b2)(an,bn)n 其中其中ai,bi(i=1,2n) 分别表示某人的名分别表示某人的名字和对应的电话号码。要求设计一个算法,当字和对应
7、的电话号码。要求设计一个算法,当给定任何一个人的名字时,该算法能够打印出给定任何一个人的名字时,该算法能够打印出此人的电话号码,如果该电话簿中根本就没有此人的电话号码,如果该电话簿中根本就没有这个人,则该算法也能够报告没有这个人的标这个人,则该算法也能够报告没有这个人的标志。志。2022-1-16数据结构14姓名姓名 电话号码电话号码 张三张三 张林张林 . . . 张杰张杰 李四李四 . . . 李中李中 姓地址张李.例一:电话号码查询问题例一:电话号码查询问题电话号码查询问题的索引存储电话号码查询问题的索引存储2022-1-16数据结构15n算法的设计,依赖于计算机如何存储人的名字和对应算
8、法的设计,依赖于计算机如何存储人的名字和对应的电话号码,或者说依赖于名字和其电话号码的结构。的电话号码,或者说依赖于名字和其电话号码的结构。n数据的结构,直接影响算法的选择和效率。数据的结构,直接影响算法的选择和效率。n上述的问题是一种数据结构问题。可将名字和对应的上述的问题是一种数据结构问题。可将名字和对应的电话号码设计成:二维数组、表、向量。电话号码设计成:二维数组、表、向量。n假定名字和其电话号码逻辑上已安排成假定名字和其电话号码逻辑上已安排成N元向量的形元向量的形式,它的每个元素是一个数对式,它的每个元素是一个数对(ai,bi), 1inn数据结构还要提供每种结构类型所定义的各种运算的
9、数据结构还要提供每种结构类型所定义的各种运算的算法算法2022-1-16数据结构16数据结构研究的内容(contd)n图书目录文件示例图书目录文件示例001高等数学樊映川S01002理论力学罗远祥L01003高等数学华罗庚S01004线性代数栾汝书S02高等数学001,003,理论力学002,线性代数004,樊映川001,华罗庚 003,栾汝书 004,L002,S001,003,2022-1-16数据结构17数据结构的定义数据结构的定义 通过以上例子可以直接认为:通过以上例子可以直接认为: 数据结构是一门研究非数值计算的程序设计问题中计算机的数据结构是一门研究非数值计算的程序设计问题中计算机
10、的操作对象操作对象以及它以及它们之间们之间关系和操作关系和操作等的学科。等的学科。 研究内容:研究内容:1、数据结构是研究数据的逻辑结构和物理结构以及它们之间相互关系、数据结构是研究数据的逻辑结构和物理结构以及它们之间相互关系2、并对每种结构定义相适应的各种运算、并对每种结构定义相适应的各种运算3、设计出相应的算法、设计出相应的算法4、分析算法的效率、分析算法的效率2022-1-16数据结构18一、术语一、术语 是信息的载体,能被计算机识别、存储、加工处理。是信息的载体,能被计算机识别、存储、加工处理。 数据的基本单位数据的基本单位, 即数据集合中的一个个体。也称即数据集合中的一个个体。也称元
11、素元素、结点结点、顶点顶点、记录记录是具有独立含义的是具有独立含义的最小最小标识单位标识单位唯一唯一能识别一个数据元素的能识别一个数据元素的数据项数据项。数据元素由数据元素由组成组成2022-1-16数据结构19具有具有性质相同性质相同的数据元素的集合,是数据的子集。的数据元素的集合,是数据的子集。例如:例如:数据集合数据集合D=0,1,。,。A,B,。,。Z正整数正整数N=0,1,字符字符C=A,B,Z2022-1-16数据结构20 按某种按某种组织起来的一批数据组织起来的一批数据, ,应用计应用计算机语言按一定的算机语言按一定的将其将其在计算机中在计算机中, ,在这些数据上定义了若干基本在
12、这些数据上定义了若干基本, ,并且讨论这并且讨论这些基本些基本基于存储方式上基于存储方式上。这种逻辑关系称为结构。常见结构:这种逻辑关系称为结构。常见结构:1 1、集合、集合2 2、线性结构(、线性结构(1 1对对1 1)3 3、树形结构;(、树形结构;(1 1对多)对多)4 4、图状结构或网状结构。(多对多)、图状结构或网状结构。(多对多)2022-1-16数据结构21n数据结构的形式定义为:数据结构是一个二元组:数据结构的形式定义为:数据结构是一个二元组:nData-Structure=(D,S)n其中:其中:D是数据元素的有限集,是数据元素的有限集,S是是D上关系的有限集。上关系的有限集
13、。n例例 复数的数据结构定义如下:复数的数据结构定义如下:nComplex=(C,R)n其中:其中:C是含两个实数的集合是含两个实数的集合C1,C2,分别表示,分别表示复数的实部和虚部。复数的实部和虚部。R=P,P是定义在集合上的一种是定义在集合上的一种关系关系C1,C2。n数据结构在计算机中的表示称为数据的物理结构,又数据结构在计算机中的表示称为数据的物理结构,又称为存储结构。称为存储结构。2022-1-16数据结构22n数据对象可以是有限的,也可以是无限数据对象可以是有限的,也可以是无限的。的。n数据结构不同于数据类型,也不同于数数据结构不同于数据类型,也不同于数据对象,它不仅要描述数据类
14、型的数据据对象,它不仅要描述数据类型的数据对象,而且要描述数据对象各元素之间对象,而且要描述数据对象各元素之间的相互关系。的相互关系。2022-1-16数据结构23 是具有相同性质的计算机数据的集合及在这个是具有相同性质的计算机数据的集合及在这个集合上的一组操作。按数据的不同特性:集合上的一组操作。按数据的不同特性:2022-1-16数据结构24n例例1、 在在FORTRAN语言中,语言中,n 变量的数据类型有整型、实型、和复数型变量的数据类型有整型、实型、和复数型n例例2、在、在C语言中语言中n 数据类型:基本类型和构造类型数据类型:基本类型和构造类型n 基本类型:整型、浮点型、字符型基本类
15、型:整型、浮点型、字符型n 构造类型:数组、结构、联合、指针、枚举型、自定构造类型:数组、结构、联合、指针、枚举型、自定义义n在某种意义上,数据结构可以看成是在某种意义上,数据结构可以看成是“一组具有相同结构的一组具有相同结构的值值”,而结构类型可以看成由,而结构类型可以看成由一种数据结构一种数据结构和定义在其上的和定义在其上的一组操作一组操作组成。组成。2022-1-16数据结构25n“抽象抽象”的意义在于数据类型的数学抽象特性的意义在于数据类型的数学抽象特性n一个数学模型以及定义在该模型上的一组操作。一个数学模型以及定义在该模型上的一组操作。(ADT的定义仅取决于它的一组逻辑特性,而与其在
16、的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关。)计算机内部如何表示和实现无关。)n抽象数据类型实际上就是对该数据结构的定义。因为抽象数据类型实际上就是对该数据结构的定义。因为它定义了一个数据的逻辑结构以及在此结构上的一组它定义了一个数据的逻辑结构以及在此结构上的一组算法。算法。n一个含抽象数据类型的软件模块应包括一个含抽象数据类型的软件模块应包括定义、表示和定义、表示和实现实现3个部分个部分n 用三元组描述如下:用三元组描述如下:n (,)(,)D是数据对象,是数据对象,S是是D上的关系集,上的关系集,P是对是对D的操作集的操作集2022-1-16数据结构26格式:AD
17、T抽象数据类型名数据对象:数据关系:基本操作:ADT抽象数据类型名基本操作定义格式:基本操作名(参数表)初始条件:操作结果:2022-1-16数据结构27数据结构包括四方面的内容数据结构包括四方面的内容: 数据的逻辑结构数据的逻辑结构 数据的存储结构数据的存储结构 逻辑结构上的基本运算逻辑结构上的基本运算 存储结构上基本运算的实现存储结构上基本运算的实现2022-1-16数据结构28数据的逻辑结构数据的逻辑结构 指的是数据之间的逻辑关系,其独立于具体指的是数据之间的逻辑关系,其独立于具体的计算机,为具体问题抽象出来的数学模型的计算机,为具体问题抽象出来的数学模型。(1)线性结构)线性结构(2)
18、非线性结构)非线性结构特征:一个结点可能有多个直接前趋和直接后继特征:一个结点可能有多个直接前趋和直接后继。 特征:仅有一个开始结点和一个终端结点,并且特征:仅有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继所有结点都最多只有一个直接前趋和一个直接后继。逻辑结构的分类逻辑结构的分类:2022-1-16数据结构29数据结构包括四方面的内容数据结构包括四方面的内容: 数据的逻辑结构数据的逻辑结构 数据的存储结构数据的存储结构 逻辑结构上的基本运算逻辑结构上的基本运算 存储结构上基本运算的实现存储结构上基本运算的实现2022-1-16数据结构30 指的是数据的逻辑结构在
19、计算机中的存储实现,指的是数据的逻辑结构在计算机中的存储实现,其依赖于具体的计算机语言其依赖于具体的计算机语言。数据的逻辑结构和物理结构是密切联数据的逻辑结构和物理结构是密切联系的两个方面,任何一个算法的系的两个方面,任何一个算法的设计设计取决于选定的数据(逻辑)结构,而取决于选定的数据(逻辑)结构,而算法的算法的实现实现依赖于采用的存储结构依赖于采用的存储结构2022-1-16数据结构31(1)顺序存储方法)顺序存储方法 将逻辑上相邻的结点存储在物理位置上相邻的将逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接存储单元里,结点间的逻辑关系由存储单元的邻接关系
20、来体现。采用顺序存储方法所得到的存储表示关系来体现。采用顺序存储方法所得到的存储表示称为称为顺序存储结构顺序存储结构。(2)链接存储方法)链接存储方法 不要求逻辑上相邻的结点在物理位置上亦相不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系由存储结点时附加的指针邻,结点间的逻辑关系由存储结点时附加的指针字段表示。采用链接存储方法所得到的存储表示字段表示。采用链接存储方法所得到的存储表示称为称为链式存储结构链式存储结构。2022-1-16数据结构32(4)散列存储方法)散列存储方法 根据结点的关键字直接计算出该结点的存储地根据结点的关键字直接计算出该结点的存储地址,以实现对结点的存储和访
21、问址,以实现对结点的存储和访问。 在存储结点信息的同时,还建立附加的索引表,索引在存储结点信息的同时,还建立附加的索引表,索引表中的每一项称为索引项,其一般形式为:(关键字,地表中的每一项称为索引项,其一般形式为:(关键字,地址)。址)。(3)索引存储方法)索引存储方法2022-1-16数据结构33数据结构包括四方面的内容数据结构包括四方面的内容: 数据的逻辑结构数据的逻辑结构 数据的存储结构数据的存储结构 逻辑结构上的基本运算逻辑结构上的基本运算 存储结构上基本运算的实现存储结构上基本运算的实现2022-1-16数据结构34 每种逻辑结构都涉及到一些基本运算,这些每种逻辑结构都涉及到一些基本
22、运算,这些基本运算实际上是基本运算实际上是定义定义在抽象的数据上的一系列在抽象的数据上的一系列操作。操作。最常用的运算有:检索、插入、删除、更最常用的运算有:检索、插入、删除、更新、排序等。新、排序等。2022-1-16数据结构35数据结构包括四方面的内容数据结构包括四方面的内容: 数据的逻辑结构数据的逻辑结构 数据的存储结构数据的存储结构 逻辑结构上的基本运算逻辑结构上的基本运算 存储结构上基本运算的实现存储结构上基本运算的实现2022-1-16数据结构36 运算的实现实际上指的是采用怎样的步骤或运算的实现实际上指的是采用怎样的步骤或方法去实现定义在逻辑结构上的运算的功能。方法去实现定义在逻
23、辑结构上的运算的功能。2022-1-16数据结构37例例:计算机系学员的选课、业余爱好、担当职务情计算机系学员的选课、业余爱好、担当职务情况统计如下:况统计如下:学号学号选修课程选修课程爱好爱好职务职务1B.F无无班长班长2A.C体育体育3A.D.F体育体育体委体委4D.E文艺文艺5C.E文艺文艺6D.F体育体育7B.E体育体育8A.E体育体育9B.F文艺文艺文委文委10B.D文艺文艺2022-1-16数据结构38学号学号选修课程选修课程爱好爱好职务职务1B.F无无班长班长2A.C体育体育3A.D.F体育体育体委体委4D.E文艺文艺5C.E文艺文艺6D.F体育体育7B.E体育体育8A.E体育体
24、育9B.F文艺文艺文委文委10B.D文艺文艺建立数据元素之间的逻辑结构建立数据元素之间的逻辑结构:1 1。按学号顺序建立并表示。按学号顺序建立并表示该集合的关系该集合的关系1 2 3 4 5 6 7 8 9 10线性结构:线性表线性结构:线性表2。按职务和爱好建立关系。按职务和爱好建立关系1 2396 784 5 10非线性结构:树非线性结构:树2022-1-16数据结构392、存储结构、存储结构线性表线性表1、逻辑结构、逻辑结构a1+9顺序表顺序表 a1a1+1a1+212 3 10 a10链表链表 a112 3 10 a2a32022-1-16数据结构402、存储结构、存储结构树树1、逻辑
25、结构、逻辑结构a1+9顺序存储顺序存储 a1a1+1a1+213 910 -1a1a1a1+2链式存储链式存储 3 9 1 2 . 10 1 2396 784 5 102022-1-16数据结构413、数据的运算:退学、数据的运算:退学 插班插班 查看查看 删除删除插入插入查找查找4、运算的实现:、运算的实现:a1+9a1a1+1a1+212 310 a12 3 10 a2a3a1012022-1-16数据结构424、运算的实现:、运算的实现:3、数据的运算:退学、数据的运算:退学 插班插班 查看查看 删除删除插入插入查找查找a1+9a1a1+1a1+212 310 a1+9a12 3 10
展开阅读全文