数据结构课件(全)全书教学教程完整版电子教案最全幻灯片.ppt
《数据结构课件(全)全书教学教程完整版电子教案最全幻灯片.ppt》由会员分享,可在线阅读,更多相关《数据结构课件(全)全书教学教程完整版电子教案最全幻灯片.ppt(464页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构数据结构North China Electric Power UniversityData Structure 第一章第一章 绪绪 论论 课程简介课程简介 基本概念基本概念 算法算法 算法语言的说明算法语言的说明North China Electric Power University开设本课程的必要性以及课程的特点:开设本课程的必要性以及课程的特点:1.计算机专业重要的专业基础课之一计算机专业重要的专业基础课之一.2.需要有关需要有关“程序设计语言程序设计语言”和和“离散数学离散数学”的知识作为课程的基础的知识作为课程的基础.3.实践性较强实践性较强.North China Elec
2、tric Power University 课程简介课程简介在计算机发展的初期,计算机主要用于科在计算机发展的初期,计算机主要用于科学计算,因此程序设计者的主要精力集中在程学计算,因此程序设计者的主要精力集中在程序设计的技巧上,而不重视数据结构。当时处序设计的技巧上,而不重视数据结构。当时处理一个计算问题的一般步骤为:理一个计算问题的一般步骤为:具体数值问题具体数值问题 数学模型数学模型 设计算法设计算法 编程编程抽象出抽象出 例如:桥梁结构的应力计算例如:桥梁结构的应力计算 (结构静力分析、线性代数方程)(结构静力分析、线性代数方程)例如:全球天气预报(环流模式方程)例如:全球天气预报(环流
3、模式方程)例如:预报人口增长率(微分方程)例如:预报人口增长率(微分方程)North China Electric Power UniversityNorth China Electric Power University 随着计算机的推广普及,计算机越来越多随着计算机的推广普及,计算机越来越多地应用于非数值领域,使人们逐渐认识到选择地应用于非数值领域,使人们逐渐认识到选择一门好的数据结构,从而设计一种好的算法是一门好的数据结构,从而设计一种好的算法是得到一个好的程序的基础。得到一个好的程序的基础。算法算法+数据结构数据结构=程序程序(Niklaus Wirth)(Algorithm+Data
4、 structure=Program)程序:为计算机处理问题编写的一组指令。程序:为计算机处理问题编写的一组指令。算法:处理问题的策略。算法:处理问题的策略。数据结构:问题的数学模型。数据结构:问题的数学模型。例如:铺设煤气管道问题例如:铺设煤气管道问题 A AB BC CD DI IH HGGE EF F18.218.232.832.844.644.612.112.18.78.756.456.421.321.341.141.167.367.310.510.585.685.698.798.752.552.579.279.2A AB BC CD DI IH HGGE EF F32.832.812
5、.112.18.78.721.321.341.141.110.510.579.279.2(a)(a)(a)(a)居民区示意图居民区示意图居民区示意图居民区示意图(b)(b)(b)(b)铺设煤气管道设计图铺设煤气管道设计图铺设煤气管道设计图铺设煤气管道设计图North China Electric Power University例如:酒店客房管理系统中的客房分配问题例如:酒店客房管理系统中的客房分配问题 例例 人机对奕问题人机对奕问题.North China Electric Power University例如:图书馆的书目检索问题例如:图书馆的书目检索问题登录号登录号书名书名作者作者分类号
6、分类号172832172832离散数学离散数学樊映川樊映川S01S01172833172833理论力学理论力学罗远祥罗远祥S01S01172834172834高等数学高等数学华罗庚华罗庚S01S01172835172835线性代数线性代数滦汝书滦汝书S02S02书名书名登录号登录号高等数学高等数学172832、172834理论力学理论力学172833线性代数线性代数172835作者作者登录号登录号樊映川樊映川172832华罗庚华罗庚172834滦汝书滦汝书172835类别类别登录号登录号L172833S172832、172834North China Electric Power Univer
7、sity数据结构:数据结构:按照某种逻辑结构组织的一组数据,按照某种逻辑结构组织的一组数据,按一定的存储方式将它们映射到计算机的存按一定的存储方式将它们映射到计算机的存 储器中,并且在这些数据上定义了一个运算储器中,并且在这些数据上定义了一个运算 的集合,运算的结果保持原来的结构。的集合,运算的结果保持原来的结构。North China Electric Power University 1.研究数据元素之间的客观联系研究数据元素之间的客观联系。2.研究具有某种逻辑关系的数据在计算机存储研究具有某种逻辑关系的数据在计算机存储 器内的存储方式。器内的存储方式。3.研究如何在数据的各种结构研究如何
8、在数据的各种结构(逻辑的和物理的逻辑的和物理的)的基础上对数据实施一系列有效的基本操作。的基础上对数据实施一系列有效的基本操作。逻辑结构逻辑结构存储结构存储结构数据结构课程研究的主要内容数据结构课程研究的主要内容算法算法 基本概念基本概念1.数据:数据:所有能输入到计算机中并为计算机程序所有能输入到计算机中并为计算机程序 处理的对象的集合。处理的对象的集合。2.2.数据元素:数据元素:数据的基本单位,在程序中作为一数据的基本单位,在程序中作为一 个整体加以考虑和处理。个整体加以考虑和处理。3.3.数据项:数据项:数据处理的最小单位。数据处理的最小单位。980604980604980604980
9、604刘晔刘晔刘晔刘晔女女女女181818188080808010101010学号学号学号学号姓名姓名姓名姓名性别性别性别性别年年年年月月月月日日日日组合项组合项组合项组合项原子项原子项原子项原子项出生出生出生出生日期日期日期日期(学生情况)(学生情况)(学生情况)(学生情况)North China Electric Power University4.4.数据对象:数据对象:性质相同的数据元素的集合。性质相同的数据元素的集合。5.5.数据的逻辑结构:数据的逻辑结构:对数据元素之间逻辑关系的对数据元素之间逻辑关系的 描述。它可以用一个数据元素的集合和定义在描述。它可以用一个数据元素的集合和定义
10、在 这个集合上的若干关系来表示。这个集合上的若干关系来表示。Data Structure=(D,S)D:数据元素的集合数据元素的集合;S:D上关系的集合上关系的集合 1 1)集合:集合中任何两个结点之间都)集合:集合中任何两个结点之间都没有逻辑关系,组织形式松散。没有逻辑关系,组织形式松散。2 2)线性结构:元素之间存在着一对一)线性结构:元素之间存在着一对一的关系。依次排列形成一条的关系。依次排列形成一条“锁链锁链”。North China Electric Power University3 3)树形结构:数据元素之间存在着一对)树形结构:数据元素之间存在着一对多的关系,具有分支、层次特性
11、。多的关系,具有分支、层次特性。4 4)图状结构:数据元素之间存在多对多)图状结构:数据元素之间存在多对多的关系,元素之间互相缠绕,任何两个的关系,元素之间互相缠绕,任何两个元素都可以邻接。元素都可以邻接。6.6.数据的存储结构:数据的存储结构:数据在计算机中的表示,包数据在计算机中的表示,包 括数据元素的表示和关系的表示。括数据元素的表示和关系的表示。1 1)顺序存储方式(向量存储)顺序存储方式(向量存储)2 2)链式存储方式)链式存储方式3 3)索引存储方式)索引存储方式4 4)散列存储方式)散列存储方式North China Electric Power University7.7.数据
12、类型:数据类型:一个值的集合和定义在这个值上的一个值的集合和定义在这个值上的 一组操作。一组操作。8.8.抽象数据类型:抽象数据类型:一个数学模型和定义在这个数一个数学模型和定义在这个数学模型的一组操作。学模型的一组操作。特性特性数据抽象:用数据抽象:用ADT描述程序处理的实体时,强调的是其本描述程序处理的实体时,强调的是其本 质的特征,其完成的功能以及和外部的接口质的特征,其完成的功能以及和外部的接口。数据封装:将实体的外部特性和其内部实现分离,并对外数据封装:将实体的外部特性和其内部实现分离,并对外 部用户隐藏其内部实现细节部用户隐藏其内部实现细节。ADT 抽象数据类型名抽象数据类型名 数
13、据对象:数据对象:数据关系:数据关系:基本操作:基本操作:ADT 抽象数据类型名抽象数据类型名North China Electric Power University例如例如:抽象数据类型复数的定义抽象数据类型复数的定义ADT Complex ADT Complex ADT Complex ADT Complex 数据对象:数据对象:数据对象:数据对象:D=e1,e2|e1,e2D=e1,e2|e1,e2D=e1,e2|e1,e2D=e1,e2|e1,e2RealsetRealset 数据关系:数据关系:R1=|e1R1=|e1是复数的实数部分、是复数的实数部分、e2e2是是 复数的虚数部分
14、复数的虚数部分 基本操作:基本操作:InitComplex(v1,v2)InitComplex(v1,v2)DestroyComplex(Z)DestroyComplex(Z)GetReal(Z,realPart)GetReal(Z,realPart)GetImag(Z,ImagPart)GetImag(Z,ImagPart)Add(Z1,Z2,Sum)Add(Z1,Z2,Sum)Subtract(Z1,Z2,Difference)Subtract(Z1,Z2,Difference)Multiply(Z1,Z2,Product)Multiply(Z1,Z2,Product)ADT Comple
15、x ADT Complex 注:对于数据成员完全相同的数据类型,如果给它们赋予不同的语义,注:对于数据成员完全相同的数据类型,如果给它们赋予不同的语义,则可形成不同的抽象数据类型则可形成不同的抽象数据类型。North China Electric Power University 算法算法算法:算法:解决问题的方法和策略,指为解决一个或解决问题的方法和策略,指为解决一个或一类问题给出的一个确定的、有限长的操作序列。一类问题给出的一个确定的、有限长的操作序列。算法的特性算法的特性:1.有穷性有穷性2.确定性确定性3.可行性可行性4.有输入有输入5.有输出有输出North China Electr
16、ic Power University算算法法设设计计的的原原则则1.正确性正确性a.a.程序中不含语法错误程序中不含语法错误b.b.程序对于几组给定的输入数据能得出满足要求的结果程序对于几组给定的输入数据能得出满足要求的结果c.c.程序对于精心选择的、典型的、苛刻的且带有刁难程序对于精心选择的、典型的、苛刻的且带有刁难 性的几组输入能得出满足要求的结果性的几组输入能得出满足要求的结果d.d.程序对一切合法输入都能得出满足要求的结果程序对一切合法输入都能得出满足要求的结果2.可读性:可读性:算法主要是为了人的阅读与交流,其次才是为了计算算法主要是为了人的阅读与交流,其次才是为了计算 机执行,因
17、此算法应该易于理解;另外,晦涩难懂的机执行,因此算法应该易于理解;另外,晦涩难懂的 程序易于隐藏较多错误而难于调试程序易于隐藏较多错误而难于调试3.健壮性:健壮性:当输入的数据非法时,算法应当恰当地做出反应或进当输入的数据非法时,算法应当恰当地做出反应或进 行相应的处理,而不是产生莫名其妙的错误输出;并行相应的处理,而不是产生莫名其妙的错误输出;并 且处理错误的方法不应该是中断程序的执行,而应是且处理错误的方法不应该是中断程序的执行,而应是 返回一个表示错误或错误性质的值,以便在更高的抽返回一个表示错误或错误性质的值,以便在更高的抽 象层次进行处理象层次进行处理4.4.高效率和低存储量需求:高
18、效率和低存储量需求:效率:指算法的执行时间效率:指算法的执行时间 存储量:算法执行过程中所需的最大存储空间存储量:算法执行过程中所需的最大存储空间 两者都与问题的规模有关两者都与问题的规模有关North China Electric Power University算法的复杂性算法的复杂性复杂性:复杂性:指实现或运行某一算法所需资源的多少。指实现或运行某一算法所需资源的多少。时间复杂性时间复杂性空间复杂性空间复杂性人工复杂性人工复杂性(指编程、调试等所需的人工指编程、调试等所需的人工)North China Electric Power University和算法执行时和算法执行时间相关的因素
19、:间相关的因素:1.1.算法选用的策略算法选用的策略2.2.问题的规模问题的规模3.3.编写程序的语言编写程序的语言4.4.编译程序产生的机器代码的质量编译程序产生的机器代码的质量5.5.计算机执行指令的速度计算机执行指令的速度一个特定算法的一个特定算法的“运行工作量运行工作量”的大小,只依赖于问题的规模(通的大小,只依赖于问题的规模(通常用整数量常用整数量n n来表示),或者说它是问题规模的函数。来表示),或者说它是问题规模的函数。算法的时间复杂性:算法的时间复杂性:假如随着问题规模假如随着问题规模n的增长,的增长,算法执行时间的增长率和算法执行时间的增长率和f(n)的增长率相同,则的增长率
20、相同,则记作记作T(n)=O(f(n),称,称T(n)为算法的时间复杂性。为算法的时间复杂性。算法时间复杂性的度量:算法时间复杂性的度量:任何一个算法都是由一个控制结构和若干原子操作组成任何一个算法都是由一个控制结构和若干原子操作组成 算法的执行时间算法的执行时间=原操作原操作(i)(i)的执行次数的执行次数*原操作原操作(i)(i)的执行时间的执行时间 因为原操作的执行时间相对问题的规模因为原操作的执行时间相对问题的规模n n而言是个常量,所以而言是个常量,所以 算法的执行时间与原操作执行次数之和成正比。算法的执行时间与原操作执行次数之和成正比。从算法中选取一种对于所研究的问题来说是基本操作
21、的原操从算法中选取一种对于所研究的问题来说是基本操作的原操 作,以该基本操作在算法中重复执行的次数作为时间复杂的依据。作,以该基本操作在算法中重复执行的次数作为时间复杂的依据。这种衡量效率的办法所得出的不是时间量,而指一种增长趋势的这种衡量效率的办法所得出的不是时间量,而指一种增长趋势的 度量,它与软、硬件无关,只揭示出算法本身执行效率的优劣。度量,它与软、硬件无关,只揭示出算法本身执行效率的优劣。North China Electric Power University例如:例如:k=k+1 时间复杂度为时间复杂度为O(1)例如:例如:for(i=0;in;i+)k=k+1 时间复杂度为时间
22、复杂度为O(n)例如:例如:for(i=0;in;i+)for(j=0;jn;j+)k=k+1 时间复杂度为时间复杂度为O(n2)例如:例如:for(i=0;in;i+)for(j=0;jn;j+)cij=0;for(k=0;kn;k+)cij=cij+aik*bkj;时间复杂度为时间复杂度为O(n3)North China Electric Power University -n+1-n(n+1)-n2 -n2(n+1)-n3对于足够大的对于足够大的n,存在下述关系:,存在下述关系:O(log n)O(n)O(nlog n)O(n2)O(n3)O(2n)O(3n)O(n!)算法的空间复杂性:
23、算法的空间复杂性:假如随着问题规模假如随着问题规模n的增长,的增长,算法执行所需存储量的增长率和算法执行所需存储量的增长率和g(n)的增长率相的增长率相同,则记作同,则记作S(n)=O(g(n),称,称S(n)为算法的空间为算法的空间复杂性。复杂性。算法的存储量:算法执行过程中所需的最大存储空间。算法的存储量:算法执行过程中所需的最大存储空间。算法的存储空间算法的存储空间1.1.输入数据所占的空间输入数据所占的空间2.2.程序本身所占的空间程序本身所占的空间3.3.辅助变量所占的空间辅助变量所占的空间North China Electric Power University1.采用自然语言来描
24、述采用自然语言来描述问题问题:求两个正整数:求两个正整数M M与与N N的最大公因子。的最大公因子。(1)M除以除以N,将余数送中间变量,将余数送中间变量R;(2)测试余数测试余数R是否等于零?是否等于零?a)若若R等于零,求得的最大公因子为当前等于零,求得的最大公因子为当前N 的值的值,算法到此结束。算法到此结束。b)若若R不等于零,将不等于零,将N送入送入M,将,将R送送N,重重 复算法的复算法的(1)和和(2)。North China Electric Power University分类:分类:1.非形式算法(自然语言算法)非形式算法(自然语言算法)2.流程图语言流程图语言3.程序设计
25、语言描述的算法程序设计语言描述的算法算法描述语言:算法描述语言:4.伪语言描述的算法伪语言描述的算法开始开始M除以除以N的余数送的余数送R余数余数R为为0否?否?输出输出N的值的值结束结束将将N送送M将将R送送Nnoyes2.采用程序流程图的形式来描述采用程序流程图的形式来描述North China Electric Power University3.采用采用某种具体程序语言某种具体程序语言来描述来描述COMFACTOR(int M,int N)int R;while(1)R=M%N;if (R=0)return N;M=N;N=R;North China Electric Power Un
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课件 全书 教学 教程 完整版 电子 教案 幻灯片
限制150内