数据结构语言描述耿国华第一章.ppt
《数据结构语言描述耿国华第一章.ppt》由会员分享,可在线阅读,更多相关《数据结构语言描述耿国华第一章.ppt(78页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构语言描述耿国华第一章2023/4/31现在学习的是第1页,共78页第1章 绪 论1.71.7 关于学习数据结构关于学习数据结构 n1.11.1 数据结构的基本概念数据结构的基本概念(定义定义)n1.2 1.2 数据结构的内容数据结构的内容(研究范围)(研究范围)n1.31.3 算法设计算法设计n1.41.4 算法描述工具算法描述工具 n1.51.5 对算法作性能评价对算法作性能评价n1.61.6 数据结构数据结构与与C C语言表示语言表示2023/4/32现在学习的是第2页,共78页1.1 数据结构的基本概念(定义)数据结构的相关名词:n数据(Data)n数据元素(Data Eleme
2、nt)n数据对象(Data Object)n数据结构(Data Structure)n数据类型(Data Type)n数据抽象与抽象数据类型2023/4/33现在学习的是第3页,共78页数据(Data)n定义:数数据据是是描描述述客客观观事事物物的的数数值值、字字符符以以及及能能输输入入机机器器且且能能被被处处理的各种符号集合理的各种符号集合。数据包含整型、实型、布尔型、图象、字符、声音等一切可以输入到计算机中的符号集合。C编译程序源程序源程序(.c)目标程序目标程序(.obj)可执行程序可执行程序(.exe)C链接程序例如对C源程序2023/4/34现在学习的是第4页,共78页数据元素(Da
3、ta Element)n定义定义:数据元素是组成数据的基本单位组成数据的基本单位,是数据集合的个体,在计算机中通常作为一个整体进行考虑和处理。例如:.北京1983.11河北女赵虹玲101住址出生年月籍贯性别姓名学号数数据据元元素素数据项数据项2023/4/35现在学习的是第5页,共78页数据对象(DataObject)n定义定义:数据对象是性质相同的数据元素的集性质相同的数据元素的集合合,是数据的一个子集。整数集合:N=0,1,2,无限集字符集合:C=A,B,Z 有限集例如:2023/4/36现在学习的是第6页,共78页数据结构(DataStructure)n定义:数据结构是指相互之间存在一种
4、或多种特定关数据结构是指相互之间存在一种或多种特定关系的数据元素集合系的数据元素集合,是带有结构的数据元素的集合,它指的是数据元素之间的相互关系,即数据的组织形式。例如表结构:.北京1983.11河北女赵虹玲101住址出生年月籍贯性别姓名学号2023/4/37现在学习的是第7页,共78页数据结构(DataStructure)树型结构图结构125432023/4/38现在学习的是第8页,共78页数据类型(Data Type)n定义:数据类型是一组性质相同的值集合以数据类型是一组性质相同的值集合以及定义在这个值集合上的一组操作的总称及定义在这个值集合上的一组操作的总称。如在高级语言中,整型类型的取
5、值范围为:-32768+32767,运算符集合为加、减、乘、除、取模,即+、-、*、/、%。2023/4/39现在学习的是第9页,共78页数据类型(Data Type)n高级语言中的数据类型分为两大类:1.原子类型原子类型,其值不可分解。如C语言中的标准类型(整型、实型、字符型、)。2.结构类型结构类型,其值是由若干成分按某种结构组成的,因此是可以分解的,并且它的成分可以是非结构的,也可以是结构的。指针类型属于哪种类型?指针类型属于哪种类型?2023/4/310现在学习的是第10页,共78页数据抽象与抽象数据类型 n数据的抽象n抽象数据类型(Abstract Data Type)n抽象数据类型
6、实现 nADT的表示与实现n面向对象的概念n结构化的开发方法与面向对象开发方法不同点2023/4/311现在学习的是第11页,共78页1.2数据结构的内容n逻辑结构n存储结构n运算集合2023/4/312现在学习的是第12页,共78页逻辑结构n定义:数据的逻辑结构是指数据元素之间逻辑关系描述。n形式化描述:Data_Structure=(D,R)其中D是数据元素的有限集,R是D上关系的有限集。n四类基本的结构 集合结构、线性结构、树型结构、图状结构。2023/4/313现在学习的是第13页,共78页集合结构n定义定义:结构中的数据元素之间除了同属于结构中的数据元素之间除了同属于一个集合的关系外
7、,无任何其它关系。一个集合的关系外,无任何其它关系。集合集合例如:2023/4/314现在学习的是第14页,共78页线性结构n定义:定义:结结构构中中的的数数据据元元素素之之间间存存在在着着一一对对一的线性关系。一的线性关系。例如:线性表线性表2023/4/315现在学习的是第15页,共78页树型结构n定义:结构中的数据元素之间存在着结构中的数据元素之间存在着一对一对多的层次关系。多的层次关系。例如:树树2023/4/316现在学习的是第16页,共78页图状结构或网状结构 n定义:定义:结构中的数据元素结构中的数据元素之间存在着多对之间存在着多对多的任意关系。多的任意关系。例如:图2023/4
8、/317现在学习的是第17页,共78页综上所述,数据的逻辑结构可概括为综上所述,数据的逻辑结构可概括为:线性结构线性结构线性表、栈、队、字符串线性表、栈、队、字符串数组、广义表数组、广义表逻辑结构逻辑结构非线性结构非线性结构树、图树、图逻辑结构逻辑结构2023/4/318现在学习的是第18页,共78页存储结构n定义:存储结构(又称物理结构)是逻辑结构在计存储结构(又称物理结构)是逻辑结构在计算机中存储映象算机中存储映象,是逻辑结构在计算机中的实现,它包括数据元素的表示和关系的表示。n形式化描述:D要存入机器中,建立一从D的数据元素到存储空间M单元映象S,DM,即对于每一个d,dD,都有唯一的z
9、M使S(D)=Z,同时这个映象必须明显或隐含地体现关系R。2023/4/319现在学习的是第19页,共78页逻辑结构与存储结构的逻辑结构与存储结构的关系关系为:为:存存储储结结构构是是逻逻辑辑关关系系的的映映象象与与元元素素本本身身映映象象,是是数数据据结构的实现结构的实现;逻辑结构逻辑结构是数据结构的抽象是数据结构的抽象。数据元素之间关系在计算机中的表示方法:数据元素之间关系在计算机中的表示方法:n顺序映象顺序映象(顺序存储结构)(顺序存储结构)n非顺序映象非顺序映象(非顺序存储结构(非顺序存储结构)存储结构存储结构 2023/4/320现在学习的是第20页,共78页运算集合例如工资表:编编
10、 号号姓姓 名名性别性别基本工资基本工资工龄工资工龄工资应扣工资应扣工资实发工资实发工资100001100001张爱芬张爱芬女女34534567671451454545303000004514511212100002100002李李 林林男男44544590901851856060454500005865865050100003100003刘晓峰刘晓峰男男34534500001301300000252500004504500000100004100004赵赵俊俊女女56056090902252259090656500007217218080100005100005孙孙涛涛男男450450606
11、01901908080505000005915918080 100121100121张兴强张兴强男男102510259898365365535310010000001291.511291.512023/4/321现在学习的是第21页,共78页数据结构的内容数据结构的内容 综上所述,数据结构的内容可归纳为三个部分,逻辑结构逻辑结构、存储结构存储结构和和运算集合运算集合:按某种逻辑关系组织起来的一批数据,按一定的映象方式把它存放在计算机存储器中,并在这些数据上定义了一个运算的集合,就叫做数据结构。2023/4/322现在学习的是第22页,共78页1.3算法n算法(算法(AlgorithmAlgor
12、ithm)定义)定义n算法的特性算法的特性n算法设计的要求算法设计的要求2023/4/323现在学习的是第23页,共78页算法(Algorithm)定义n定义:Algorithm is a finite set of rules which gives a sequence of operation for solving a specific type of problem.算法是规则的有限集合,是为解决算法是规则的有限集合,是为解决特定问题而规定的一系列操作。特定问题而规定的一系列操作。2023/4/324现在学习的是第24页,共78页算法的特性1.有限性:有限步骤之内正常结束,不能形成无
13、穷循环2.确定性:算法中的每一个步骤必须有确定含义,无二 义性得以实现。3.输 入:有多个或0个输入 4.输 出:至少有一个或多个输出。5.可行性:原则上能精确进行,操作可通过已实现基本 运算执行有限次而完成。2023/4/325现在学习的是第25页,共78页算法设计的要求n算法的正确性算法特征:n 可读性 n 健壮性 n 高效率和低存储量例如要求n个数的最大值问题给出算法如下:max:=0;for(i=1;imax)max=x;2023/4/326现在学习的是第26页,共78页1.4算法描述的工具n概述:算法+数据结构=程序n算法、语言、程序的关系n设计实现算法过程步骤n类描述算法的语言选择
14、2023/4/327现在学习的是第27页,共78页算法、语言、程序的关系1.算法:描述了数据对象的元素之间的关系(包括数据逻辑关系、存贮关系描述)。2.描述算法的工具:算法可用自然语言、框图或高级程序设计语言进行描述。3.程序是算法在计算机中的实现。2023/4/328现在学习的是第28页,共78页设计实现算法过程步骤1.找出与求解有关的数据元素之间的关系2.确定在某一数据对象上所施加运算3.考虑数据元素的存储表示4.选择描述算法的语言5.设计实现求解的算法,并用程序语言加以描述。2023/4/329现在学习的是第29页,共78页类描述算法的语言选择n类语言:类语言是接近于高级语言而又不是严格
15、的高级语言,具有高类语言是接近于高级语言而又不是严格的高级语言,具有高级语言的一般语句设施,撇掉语言中的细节,以便把注意力级语言的一般语句设施,撇掉语言中的细节,以便把注意力主要集中在算法处理步骤本身的描述上。主要集中在算法处理步骤本身的描述上。2023/4/330现在学习的是第30页,共78页3.赋值语句赋值语句对C语言作以下描述:(1)简单赋值简单赋值1)变量名变量名=表达式表达式2)变量变量+,3)变量变量-,(2)串联赋值串联赋值变量变量1=变量变量2=变量变量3=变量变量k=表达式表达式2023/4/331现在学习的是第31页,共78页对C语言作以下描述:(4)条件赋值条件赋值变量名
16、变量名=条件表达式条件表达式?表达式表达式1:表达式表达式2(3)成组赋值成组赋值(,变量变量k=(,)数组名数组名1 1 下标下标11下标下标2=2=数组名数组名2 2 下标下标11下标下标22 2023/4/332现在学习的是第32页,共78页4.条件选择语句对C语言作以下描述:nif()语句;nif()语句1;else语句2;2023/4/333现在学习的是第33页,共78页n情况语句switch()case判断值1:语句组1;break;case判断值2:语句组2;break;case判断值n:语句组n;break;default:语句组;break;对C语言作以下描述:2023/4/
17、334现在学习的是第34页,共78页对C语言作以下描述:5.循环语句循环语句nfor语句语句for(;)循环体语句;循环体语句;2023/4/335现在学习的是第35页,共78页nwhile语句语句while()循环体语句;循环体语句;对C语言作以下描述:ndowhile语句语句do循环体语句循环体语句while()2023/4/336现在学习的是第36页,共78页1.5对算法作性能评价n评价算法的标准:评价一个算法主要看这个算法所占用机器资源的多少,而这些资源中时间代价与空间代价是两个主要的方面,通常是以算法执行所需的机器时间和所占用的存储空间来判断一个算法的优劣。n性能评价 n有关数量关系
18、计算有关数量关系计算2023/4/337现在学习的是第37页,共78页性能评价性能评价n定义:定义:对对问问题题规规模模与与该该算算法法在在运运行行时时所所占占的的空空间间S与与所所耗费的时间耗费的时间T给出一个数量关系的评价给出一个数量关系的评价。问题规模问题规模N对不同的问题其含义不同:对不同的问题其含义不同:对矩阵是阶数;对矩阵是阶数;对多项式运算是多项式项数;对多项式运算是多项式项数;对图是顶点个数;对图是顶点个数;对集合运算是集合中元素个数。对集合运算是集合中元素个数。2023/4/338现在学习的是第38页,共78页有关数量关系计算数量关系评价体现在时间数量关系评价体现在时间算法在
19、机器中所耗费时间。算法在机器中所耗费时间。数数量量关关系系评评价价体体现现在在空空间间算算法法在在机机器器中中所所占占存存储储量。量。n关于算法关于算法执执行行时间时间n语句频度语句频度 n算法的时间复杂度算法的时间复杂度n数据数据结结构中常用的构中常用的时间时间复复杂杂度度频频率率计计数数 n最坏最坏时间时间复复杂杂度度 n算法的空间复杂度算法的空间复杂度 2023/4/339现在学习的是第39页,共78页关于算法执行时间n定义定义:一个算法的执行时间大致上等于其所有语句执行时间的总和,对于语句的执行时间是指该条语句的执行次数和执行一次所需时间的乘积。n分析分析:不是针对实际执行时间的精确地
20、算出算法执行具体时不是针对实际执行时间的精确地算出算法执行具体时间,而是针对算法中语句的执行次数做出估计,从中得到间,而是针对算法中语句的执行次数做出估计,从中得到算法执行时间的信息。算法执行时间的信息。2023/4/340现在学习的是第40页,共78页语句频度n定义:定义:语句频度是指该语句在一个算法中重复执行的次语句频度是指该语句在一个算法中重复执行的次数。数。例如:例如:两个矩两个矩阵相乘阵相乘算法语句算法语句 对应的语句频度对应的语句频度 1 1forfor(i=0i=0;i n;i+i n;i+)n n 2 2for for(j=0j=0;jn;j+jn;j+)n n2 2 3 ci
21、j=0;n 3 cij=0;n2 2 4 for(k=0;k n;k+)n 4 for(k=0;k n;k+)n3 3 cij=cij+aik*bkj;n cij=cij+aik*bkj;n3 3 总执行次数:总执行次数:Tn=2n3+2n2+n2023/4/341现在学习的是第41页,共78页算法的时间复杂度算法的时间复杂度,即是算法的时间量度算法的时间复杂度,即是算法的时间量度记做:记做:T(n)=O(f(n)例如给出例如给出X=X+1(1)x=x+1;时间复杂度为;时间复杂度为O(1),称为常量阶;,称为常量阶;(2)for(i=1;i=n;i+)x=x+1;时间复杂度为时间复杂度为O(
22、n),称为线性阶;,称为线性阶;(3)for(i=1;i=n;i+)for(j=1;j=n;j+)x=x+1;时间复杂度为时间复杂度为O(n2),称为平方阶。称为平方阶。2023/4/342现在学习的是第42页,共78页常用的时间复杂度频率计数n数据结构中常用的时间复杂度频率计数有7个:O(1)常数型常数型 O(n)线性型线性型 O(n2)平方型平方型 O(n3)立方型立方型 O(2n)指数型指数型 O(log2n)对数型对数型O(nlog2n)二维型二维型按时间复杂度由小到大排列的频率表:按时间复杂度由小到大排列的频率表:2023/4/343现在学习的是第43页,共78页常用的时间复杂度频率
23、计数n常用的时间复杂度频率表:常用的时间复杂度频率表:loglog2 2n nn nnlognlog2 2n nn n2 2n n3 32 2n n一般讲:前一般讲:前3种可实现,种可实现,后后3种虽理论种虽理论上是可实现上是可实现的,实际上的,实际上只有对只有对N限限制在很小范制在很小范围才有意义,围才有意义,当当N较大时,较大时,不可能实现。不可能实现。0 01 10 01 11 12 21 12 22 24 48 84 42 24 48 81616646416163 38 8242464645125122562564 4161664642562565096509665536655365
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 语言 描述 国华 第一章
限制150内