四章节数据结构.ppt
《四章节数据结构.ppt》由会员分享,可在线阅读,更多相关《四章节数据结构.ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、四章节数据结构 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望主要内容主要内容4.1 基本数据结构与算法基本数据结构与算法 4.2 线性表线性表 4.3 栈和队列栈和队列4.4 树和二叉树树和二叉树 4.5 查找查找4.6 内部排序内部排序4.1 基本数据结构与算法基本数据结构与算法 4.1.1 数据结构的基本概念数据结构的基本概念1.1.数据结构的定义数据结构的定义(1)(1)数据:数据:信息载体,能够被计算机识别、存储和加工信息载体,能够被计算机识别、存储和加
2、工处理。可以使数值数据处理。可以使数值数据(整数、实数整数、实数),也可以是非数值,也可以是非数值数据数据(声音、图像等声音、图像等)。(2)(2)数据元素:数据元素:数据的基本单位,在计算机程序中通常数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理作为一个整体进行考虑和处理(又称结点、记录又称结点、记录)。数据项:一个数据元素由若干数据项组成,数据的不可分割的最数据项:一个数据元素由若干数据项组成,数据的不可分割的最 小单位。小单位。关键码:其值能唯一确定一个数据元素的数据项。关键码:其值能唯一确定一个数据元素的数据项。举例:图书管理系统举例:图书管理系统 数据元素数据元素 数据
3、项数据项 关键码关键码 (一本书一本书)书目信息书目信息 书目信息每一项书目信息每一项 书号书号(唯一确定一本书唯一确定一本书)(3)(3)数据对象:数据对象:具有相同性质的数据元素的集合。数据具有相同性质的数据元素的集合。数据元素是数据对象类的一个实例。元素是数据对象类的一个实例。(4)(4)数据结构:数据结构:定义定义:相互之间存在着一种或多种关系的数据元素的集合。相互之间存在着一种或多种关系的数据元素的集合。研究内容研究内容:数据的逻辑结构:各数据元素之间的逻辑关系数据的逻辑结构:各数据元素之间的逻辑关系数据的存储结构:各数据元素在计算机中的存储关系数据的存储结构:各数据元素在计算机中的
4、存储关系对各种数据结构进行的运算:添加,删除,排序等。对各种数据结构进行的运算:添加,删除,排序等。2.2.数据的逻辑结构数据的逻辑结构四类基本逻辑结构四类基本逻辑结构(1)集合结构:数据元素间的关系是集合结构:数据元素间的关系是“属于同一个集合属于同一个集合”(2)线性结构:数据元素之间存在一个对一个的关系。线性结构:数据元素之间存在一个对一个的关系。(3)树形结构:数据元素之间存在一个对多个的关系。树形结构:数据元素之间存在一个对多个的关系。(4)图形结构:数据元素之间存在多个对多个的关系。图形结构:数据元素之间存在多个对多个的关系。学号学号姓名姓名系别系别住址住址电话电话.981111李
5、洪李洪机械机械六舍六舍5371111982111王刚王刚电子电子四舍四舍5372111983211王将王将计算机计算机五舍五舍5373211983212张强张强机械机械六舎六舎5372221 线性结构线性结构树型结构树型结构线性结构与非线性结构线性结构与非线性结构概念概念结点结点:组成数据结构的数据元素称为一个结点。组成数据结构的数据元素称为一个结点。前后件关系前后件关系:数据元素之间的固有关系可以用前后件关系数据元素之间的固有关系可以用前后件关系(前驱与后继关系前驱与后继关系)描述。描述。举例:家庭成员辈分关系举例:家庭成员辈分关系(父亲、儿子、女儿父亲、儿子、女儿),“父亲父亲”是是“儿子
6、儿子”和和“女儿女儿”的前件,的前件,“儿子儿子”和和“女儿女儿”是是“父亲父亲”后件。后件。线性结构线性结构有且只有一个根结点有且只有一个根结点每个结点最多有一个前件,也最多有一个后件每个结点最多有一个前件,也最多有一个后件非线性结构非线性结构一个数据结构如果不是线性结构,则称之为非线性结构。数一个数据结构如果不是线性结构,则称之为非线性结构。数据元素的前后关系复杂,一个结点既可以有多个前件,也可据元素的前后关系复杂,一个结点既可以有多个前件,也可以有多个后件。树型、图形结构属于非线性结构。以有多个后件。树型、图形结构属于非线性结构。3.3.数据的存储结构数据的存储结构定义:定义:数据的逻辑
7、结构在计算机存储空间中的存放形式。数据的逻辑结构在计算机存储空间中的存放形式。数据存储结构中不仅存放各数据元素信息,还存放前后件数据存储结构中不仅存放各数据元素信息,还存放前后件关系的信息。关系的信息。实现方式:实现方式:(1)顺序存储方式:逻辑上相邻的元素存储在物理位置相邻顺序存储方式:逻辑上相邻的元素存储在物理位置相邻的存储单元中。主要用于线性结构。通常借助于数组来实的存储单元中。主要用于线性结构。通常借助于数组来实现。现。顺序存储结构的线性表顺序存储结构的线性表线性表线性表(a1,a2,a3,a4)(2)链式链式存储方式:对逻辑上相邻的元素不要求其物理地址存储方式:对逻辑上相邻的元素不要
8、求其物理地址相邻,元素间逻辑关系通过附加的指针字段来表示。通常相邻,元素间逻辑关系通过附加的指针字段来表示。通常借助于指针类型实现。借助于指针类型实现。链链式式存存储储结结构构的的线线性性表表线性表线性表(a1,a2,a3,a4)链式存储结构的特点链式存储结构的特点每个每个结点由两部分组成:一部分存放数据,另一部分存储结点由两部分组成:一部分存放数据,另一部分存储指向前件或后件结点的指针域。指向前件或后件结点的指针域。逻辑上相邻的结点物理上不必相连。逻辑上相邻的结点物理上不必相连。数据运算数据运算(插入和删除等插入和删除等)灵活。灵活。(3)索引索引存储方法和散列存储方法存储方法和散列存储方法
9、(为了查找方便为了查找方便)4.4.数据结构的表示数据结构的表示(1)(1)二元关系表示二元关系表示B=(D,R)B:数据结构:数据结构D:数据元素的集合:数据元素的集合R:D上的关系上的关系(反映数据元素前后件关系反映数据元素前后件关系)家庭成员数据结构家庭成员数据结构B=(D,R)D=父亲父亲,儿子儿子,女儿女儿R=(父亲父亲,儿子儿子),(父亲父亲,女儿女儿)(2)(2)图形表示图形表示D D中每个数据元素用标有元素值的方框表示中每个数据元素用标有元素值的方框表示,简称结点。简称结点。R R中每个二元组中每个二元组,用一条有向线段从前件结点指向后件结点。用一条有向线段从前件结点指向后件结
10、点。根结点:没有前件的结点根结点:没有前件的结点叶子结点叶子结点(终端结点终端结点):没有后件的结点:没有后件的结点5.5.数据的运算数据的运算定义:定义:在数据的逻辑结构上定义的操作算法在数据的逻辑结构上定义的操作算法 常见运算:常见运算:插入、删除、查找、排序和更新等插入、删除、查找、排序和更新等 分类:分类:加工型运算:运算改变了数据结构的值加工型运算:运算改变了数据结构的值引用型运算:不改变值,只查询或求得结构的值。引用型运算:不改变值,只查询或求得结构的值。4.1.2 算法和算法分析算法和算法分析 1.1.算法基本概念算法基本概念定义:定义:为解决某个特定问题而采取的确定且有限的步骤
11、为解决某个特定问题而采取的确定且有限的步骤的一种描述。的一种描述。(解题方案的准确而完整描述解题方案的准确而完整描述)特点特点(五个五个):有穷性:包含有限个操作步骤,有限时间内完成。有穷性:包含有限个操作步骤,有限时间内完成。确定性:每一条指令无二义性确定性:每一条指令无二义性可行性:指定操作都可以实现可行性:指定操作都可以实现输入性:一个算法有零个或多个的输入输入性:一个算法有零个或多个的输入输出性:一个算法有一个或多个的输出输出性:一个算法有一个或多个的输出2.2.算法基本要素及描述算法基本要素及描述基本要素:基本要素:数据对象的运算和操作数据对象的运算和操作算法的控制结构算法的控制结构
12、算法表示:算法表示:自然语言,伪代码,流程图自然语言,伪代码,流程图3.3.算法设计要求算法设计要求(1)正确性:执行结果应满足预先的功能和性能要求正确性:执行结果应满足预先的功能和性能要求(2)可读性:层次分明、易读易懂。可读性:层次分明、易读易懂。(3)健壮性:输入数据非法时,算法能作适当处理健壮性:输入数据非法时,算法能作适当处理(4)效率:效率:有效使用存储空间和较高的时间效率。有效使用存储空间和较高的时间效率。4.4.算法的设计方法算法的设计方法(1)列举法:列举法:列举出所有可能情况,用给定条件检验哪列举出所有可能情况,用给定条件检验哪些是需要的,哪些是不需要的。些是需要的,哪些是
13、不需要的。(2)归纳法:归纳法:列举少量简单而又特殊的情况,分析归纳列举少量简单而又特殊的情况,分析归纳出一般结论。出一般结论。(3)递推法:递推法:从已知初始条件出发,逐步推出各种中间结果从已知初始条件出发,逐步推出各种中间结果和最后结果。和最后结果。(4)递归法:递归法:解决复杂问题时,将问题逐层分解,归纳为一解决复杂问题时,将问题逐层分解,归纳为一些简单问题,解决了最后简单问题后,再沿原来的逆过程逐些简单问题,解决了最后简单问题后,再沿原来的逆过程逐步综合步综合。(5)减半递推技术:减半递推技术:减少:问题规模减半,而性质不变减少:问题规模减半,而性质不变递推:重复减半的过程递推:重复减
14、半的过程(6)回溯法:回溯法:尝试。分析找出解决线索,逐步试尝试。分析找出解决线索,逐步试探探成功:求得解成功:求得解失败:逐步回推,换线索再试探。失败:逐步回推,换线索再试探。5.5.算法复杂度算法复杂度评价算法标准:评价算法标准:算法所占用计算机资源,即时间代价和算法所占用计算机资源,即时间代价和空间代价。空间代价。相关名词:相关名词:(1)问题规模:不同种类问题,问题规模含义不同。如矩问题规模:不同种类问题,问题规模含义不同。如矩阵运算取决于矩阵阶数,多项式运算取决于项数。阵运算取决于矩阵阶数,多项式运算取决于项数。(2)算法运行时间:大致等于其所有语句执行时间的总和。算法运行时间:大致
15、等于其所有语句执行时间的总和。(3)语句频度:该语句在算法中重复执行的次数。语句频度:该语句在算法中重复执行的次数。算法的时间复杂度:算法的时间复杂度:定义:定义:算法运行从开始到结束所需要的计算工作量。算法运行从开始到结束所需要的计算工作量。记作:记作:T(n)=O(f(n)n:问题规模。:问题规模。T(n)是是n的某个函数。的某个函数。O:数量级。当问题规模趋向无穷时,:数量级。当问题规模趋向无穷时,T(n)的数量级的数量级称为时间复杂度。称为时间复杂度。算法的时间复杂度不仅仅依赖于问题的规模,也取决于算法的时间复杂度不仅仅依赖于问题的规模,也取决于输入实例的初始状态。输入实例的初始状态。
16、最优算法:随最优算法:随n n的增大,的增大,T(n)增长较慢的算法。增长较慢的算法。两种:两种:平均时间复杂度:平均时间复杂度:所有可能的输入实例均以等概率出现所有可能的输入实例均以等概率出现的情况下,算法的期望运行时间。的情况下,算法的期望运行时间。最坏时间复杂度:最坏时间复杂度:最坏情况下算法的时间复杂度。最坏情况下算法的时间复杂度。算法的空间复杂度:算法的空间复杂度:定义:定义:算法运行从开始到结束所需的存储空间量算法运行从开始到结束所需的存储空间量(耗费的耗费的存储空间存储空间)。所需存储空间包括两部分所需存储空间包括两部分固定部分:固定部分:此部分空间与所处理数据的大小和规模无关。
17、此部分空间与所处理数据的大小和规模无关。可变部分:可变部分:此部分空间与处理的数据的大小和规模有关,此部分空间与处理的数据的大小和规模有关,即执行算法所需额外空间。即执行算法所需额外空间。4.2 线性表线性表 4.2.1 线性表的基本概念线性表的基本概念定义:定义:具有相同数据类型的具有相同数据类型的n(n0)个数据元素组成的有限个数据元素组成的有限序列。最简单、最常用的数据结构。序列。最简单、最常用的数据结构。表示:表示:L=(a1,a2,a3,ai-1,ai,ai+1,an)n为线性表长度为线性表长度(n=0称为空表称为空表),表中相邻元素之间存在着,表中相邻元素之间存在着顺序关系。顺序关
18、系。a1:表头元素;:表头元素;an:表尾元素;:表尾元素;ai-1称为称为ai的的直接前驱;直接前驱;ai+1 称为称为ai的直接后继。的直接后继。结构特点:结构特点:(1)有且只有一个根结点有且只有一个根结点a1,无前驱,无前驱。(2)有且只有一个终端结点有且只有一个终端结点an,无后继,无后继。(3)其他结点有且只有一个直接前驱和一个直接后继。其他结点有且只有一个直接前驱和一个直接后继。线性表的分类线性表的分类(1)(1)简单线性表:简单线性表:数据元素是简单项数据元素是简单项(数字、字母、季节名数字、字母、季节名等等),(12,34,4,67,8)(2)(2)复杂线性表:复杂线性表:数
19、据元素由若干个数据项组成,此时数据数据元素由若干个数据项组成,此时数据元素称为记录。元素称为记录。复杂线性表举例(学生登记表)复杂线性表举例(学生登记表)姓名姓名学号学号性别性别年龄年龄班级班级王洪强王洪强张利红张利红王刚王刚崔应强崔应强97061970629706397064男男女女男男男男18202117计计97计计97计计97计计974.2.2 线性表的顺序存储结构线性表的顺序存储结构 顺序表:顺序表:采用顺序存储结构的线性表称为顺序表采用顺序存储结构的线性表称为顺序表(一维数组一维数组)顺序存储:顺序存储:用一组地址连续的存储空间依次存储放线性表的用一组地址连续的存储空间依次存储放线性
20、表的各元素各元素 特点特点(顺序存储结构顺序存储结构)表中的所有元素所占存储空间连续表中的所有元素所占存储空间连续表中各元素在存储空间中按逻辑顺序存放表中各元素在存储空间中按逻辑顺序存放 第第i i个元素地址:个元素地址:m:每个元素占:每个元素占m个存储单元个存储单元Loc(a1)第一个元素地址第一个元素地址(基址基址)1.1.顺序表基本概念顺序表基本概念顺序表的顺序存储结构顺序表的顺序存储结构 2.2.顺序表基本运算顺序表基本运算基本运算:基本运算:插入:在线性表指定位置插入一个新元素插入:在线性表指定位置插入一个新元素删除:删除线性表中指定的元素删除:删除线性表中指定的元素查找:在线性表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 章节 数据结构
限制150内