ImageVerifierCode 换一换
格式:PPT , 页数:68 ,大小:2.81MB ,
资源ID:12469509      下载积分:16 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/12469509.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(数据结构chap01.ppt)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

数据结构chap01.ppt

1、Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,Click to edit Master title style,2 数据结构题集(C语言版),严蔚敏 吴伟民 清华大学出版社,参考教材,1 数据结构(C语言版),严蔚敏 吴伟民 清华大学出版社,第一章 绪论,第一章 绪论,1.1,数据结构讨论的范畴;,1.2,数据结构的有关基本概念;,1.3,抽象数据类型的表示与实现;,1.4,算法及算法分析(算法评价),数据结构是什么?,Niklaus Wirth,AlgorithmDat

2、a Structures Programs,程序设计:,为计算机解题(处理问题)编制的一组,指令集。,算法:,对某类信息进行处理,,,处理问题的策略。,数据结构:,处理的信息怎么表示,,,问题的数学模型。,任何问题都包括这两个方面的问题,包括数值计算和非数值计算,1.1 数据结构讨论的范畴,数值问题与非数值问题,1)数值计算中的程序设计的问题,例1 已知:游泳池的长len和宽wide,求面积area?,建模型:问题涉及的对象:游泳池的长len 宽wide,面积area;,对象之间的关系:area=len,wide (算法),设计求解问题的方法,1.1 数据结构讨论的范畴,编程,main(),i

3、nt len,wide,area;scanf(“%d%d%n”,学号 姓名 性别 出生日期 籍贯 入学成绩 所在班级,00201,杨润生 男 82/06/01 广州 561 00计算机200102 石磊 男 83/12/21 汕头 512 00计算机100202 李梅 女 83/02/23 阳江 532 00计算机2,00301 马耀先 男 82/07/12 广州 509 00计算机3,2)非数值计算的程序设计问题,例 2 已知某级学生情况,要求分班按入学成绩排列顺序,。,学生管理数据库系统,1.1 数据结构讨论的范畴,算法:?需要解决的问题?如何解决?用户界面?,模型:?各种各样的表格和数据

4、库,在这类文档管理的数学模型中,计算机处理的对象之间通常存在着一种最简单的线性关系,这类数学模型称为线性模型。,例 3 迷宫问题。在迷宫中,每走到一处,接下来可走的通路有三条。计算机处理的这类对象之间通常不存在线性关系。若把从迷宫入口处到出口的过程中所有可能的通路都画出,则可得一棵“树”,。,入口,出口,算法:?走迷宫的规则和策略,模型:?迷宫、迷宫的每一处,城市间交通网问题,算法:?交通网中要解决的问题?,模型:?每一条通路、每一个路口,综合各种程序设计问题,抽取它具体的物理含义,可以得到几种数学模型,例如:,1、与数值计算相关的问题:,线性代数方程、非线性代数方程、常微分方程(计算机求解的

5、问题就是计算数学要研究的问题),2、与非数值计算相关的问题:,问题的表示和求解的方法,就是数据结构要讨论的内容。,数据结构的研究问题:,非数值数据之间的结构关系,,及如何表示,如何存储,如何处理。,本课程讨论的问题:,应用中常用的几种数据间的结构关系,,及如何表示,如何存储,如何处理。,1.1 数据结构讨论的范畴,数据:,所有能输入到计算机中,且被计算机处理的符号的集合,,是计算机操作对象的总称;,是计算机处理的信息的某种特定的符号表示形式。,数据元素:,数据中的一个“个体”,数据结构中讨论的基本单位。相当于“记录”,在计算机程序中通常作为一个整体考虑和处理。,1.2 数据结构的有关概念,数据

6、项:,相当于记录的“域”,是数据的不可分割的最小单位,如学号。数据元素是数据项的集合。,例如:运动员(数据元素),数据对象,:,性质相同的数据元素的集合.,例如:所有运动员的记录集合,姓名,俱乐部名称,出生日期,参加日期,职务,业绩,年,月,日,1.2 数据结构的有关概念,数据结构:,是相互间存在某种关系的数据元素集合,。,例如:一个含有12位数的十进制数,可以用三个4位的十进制数表示,3214,6587,9345-,a1(3124),a2(6587),a3(9345),在a1,a2和a3之间存在“次序”关系,次序不能颠倒,a1,a2,a3!=a2,a1,a3,数据结构是带结构的数据元素的集合

7、1.2 数据结构的有关概念,又例:2行3列二维数组a1,a2,a3,a4,a5,a6,行的次序关系:,row=,列的次序关系:,col=,a1,a2,a3,a4,a5,a6,数据结构是带结构的数据元素的集合,1.2 数据结构的有关概念,再例,一维数组a1,a2,a3,a4,a5,a6存在,次序关系,:,|i=1,2,3,4,5,6,不同的关系构成不同的结构,数据结构是带结构的数据元素的集合,1.2 数据结构的有关概念,对每种数据结构,主要讨论如下两方面的问题:,1)数据的逻辑结构,数据结构的基本操作;2)数据的存储结构,数据结构基本操作的实现;,数据的逻辑结构:,数据之间的结构关系,是,具体

8、关系的抽象。,数据结构的基本操作:,指对数据结构的加工处理,数据的存储结构(物理结构):,数据结构在计算机内存中的表示,数据结构基本操作的实现,:,基本操作在计算机上的实现(方法),1.2 数据结构的有关概念,1数据的逻辑结构,2、数据的存储结构,3、数据的运算:检索、排序、插入、删除、修改等。,A线性结构,B非线性结构,A 顺序存储,B 链式存储,线性表,栈,队,树形结构,图形结构,数据结构的三个方面,1.2 数据结构的有关概念,某班学生基本情况登记表,记录了每个学生的学号 姓名 专业 政治 面貌,表中的记录是按学生的学号顺序排列的。,学号 姓名 专业 政治面藐 001 王洪 计算机 党员

9、 002 孙文 计算机 团员 003 谢军 计算机 团员 004 李辉 计算机 团员 005 沈祥福 计算机 党员,006 余斌 计算机 团员 007 巩力 计算机 团员 008 孔令辉 计算机 团员,学生基本情况登记表的图示,学生间学号顺序关系,是一种线性结构关系,例,一 常用的数据逻辑结构,1,)集合 2)线性结构 3)树结构 4)图结构 5)其它复杂结构,001,003,002,004,006,005,008,007,数据结构的分类及表示,家族的族谱,假设某家族有10个成员A,B,C,D,E,F,G,H,I,J,他们之间的血缘关系可以用如下图表示。,例,家族的成员之间是一种树型结构关系,

10、J,I,A,C,B,D,H,G,F,E,数据结构的分类及表示,J,I,A,C,B,D,H,G,F,E,J,I,A,C,B,D,H,G,F,E,J,I,A,C,B,D,H,G,F,E,J,I,A,C,B,D,H,G,F,E,1,4,2,3,D=1,2,3,4,R=(1,2),(1,3),(1,4),(2,3),(3,4),(2,4),2,1,3,D=1,2,3,R=(1,2),(2,3),(3,2),(1,3),图形结构节点间的连结是任意的,例,数据结构的分类及表示,二数据结构的表示,图示表示,图示表示是由顶点和边构成的图,其中顶点表示数据,边表示数据之间的结构关系;,001,003,002,0

11、04,006,005,008,007,学生基本情况表的图示表示,家族树的图示表示,数据结构的分类及表示,J,I,A,C,B,D,H,G,F,E,学生基本情况表的二元组表示(D,S),二元组表示,二元组表示是用一个二元组(D,S)表示数据结构,其中 D 是数据元素集合,S 是 D 上关系的集合。,D=001,002,003,004,005,006,007,008,S=R,R=,001,003,002,004,006,005,008,007,数据结构的分类及表示,家族树的二元组表示(D,S),D=A,B,C,D,E,F,G,H,I,J S=R R=A,B,J,I,A,C,B,D,H,G,F,E,.

12、数据元素的映像方法:用二进制位(bit)的位串表示数据元素,(321),10,=(501),8,=(101000001),2,A=(101),8,=(001000001),2,三 数据的存储结构,逻辑结构在存储器中的映像,2.关系的映像方法,:(表示的方法),有序对是关系的基本单位,关系的映像就是有序对的映像,J,I,A,C,B,D,H,G,F,E,元素n,.,元素i,.,元素2,元素1,L,o,L,o,+m,L,o,+(i-1)*m,L,o,+(n-1)*m,存储地址,存储内容,Loc(a)=L,o,+(i-1)*m,顺序存储,每个元素所占用,的存储单元个数,以存储位置的相邻来表示后继关系y

13、的存储位置和x的存储位置的次序关系,数据的存储结构,元素n,.,元素i,.,元素2,元素1,存储内容,顺序存储结构常用于线性数据结构,将逻辑上相邻的数据元素存储在物理上相邻的存储单元里。,顺序存储结构的三个弱点:,1.作插入或删除操作时,需移动大量元数。,2.长度变化较大时,需按最大空间分配。,3.表的容量难以扩充。,数据的存储结构,1536,元素2,1400,元素1,1346,元素3,元素4,1345,h,链式存储,每个节点都由两部分组成:,数据域,和,指针域,。,数据域,存放元素本身的数据,,指针域,存放指针。,数据元素之间逻辑上的联系由指针来体现。,数据的存储结构,1536,元素2,14

14、00,元素1,1346,元素3,元素4,head,1346,元素3,1536,.,.,.,1536,元素2,1400,.,.,.,元素4,1346,1400,元素1,1345,指针,存储内容,存储地址,链式存储,1345,数据的存储结构,1536,元素2,1400,元素1,1346,元素3,元素4,1345,h,链式存储,1.比顺序存储结构的存储密度小,(每个节点都由数据域和指针域组成)。,2.逻辑上相邻的节点物理上不必相邻。,3.插入、删除灵活,(不必移动节点,只要改变节点中的指针)。,链接存储结构特点:,数据的存储结构,在不同的编程环境中,存储结构可有不同的描述方法。,当用高级程序设计语言

15、进行编程时,通常可用高级语言中提供的数据类型描述之。,例如:以三个带有次序关系的整数表示一个长整数,可以利用C语言中提供的整数数组类型,定义长整数为:,Typedef int long_int3,一、数据类型,在用高级程序语言编写的程序中,必须对程序中出现的每个变量、常量或表达式,明确说明它们所属的数据类型。,1.3 抽象数据类型的表示与实现,例如,C 语言中提供的,基本数据类型,有:,整型 int,浮点型 float,字符型 char,逻辑型 bool (C+语言),双精度型 double,实型(C+语言),数据类型,数据类型,是一个,值的集合,和定义在此集合上的,一组操作,的总称。,不同类

16、型的变量,其所能取的,值的范围,不同,所能,进行的操作,不同。,数据类型,二、抽象数据类型,(Abstract Data Type 简称ADT),是指,一个数学模型,以及定义在此数学模型上的,一组操作,。,抽象数据类型,例如,抽象数据类型复数的定义:,数据对象:,De1,e2e1,e2RealSet ,数据关系:,R1|e1是复数的实数部分,|e2 是复数的虚数部分,ADT Complex,抽象数据类型,基本操作:,AssignComplex(&Z,v1,v2),操作结果:构造复数 Z,其实部和虚部,分别被赋以参数 v1 和 v2 的值。,DestroyComplex(&Z),操作结果:复数Z

17、被销毁。,GetReal(Z,&realPart),初始条件:复数已存在。,操作结果:用realPart返回复数Z的实部值。,抽象数据类型,GetImag(Z,&ImagPart),初始条件:复数已存在。,操作结果:用ImagPart返回复数Z的虚部值。,Add(z1,z2,&sum),初始条件:z1,z2是复数。,操作结果:用sum返回两个复数z1,z2 的和值。,ADT Complex,抽象数据类型,假设:z1和z2是上述定义的复数,则 Add(z1,z2,z3)操作的结果,z3=z1+z2,即为用户企求的结果,抽象数据类型,ADT,有两个重要特征,:,数据抽象,用ADT描述程序处理的实体

18、时,强调的是其本质的特征、其所能完成的功能以及它和外部用户的接口(即外界使用它的方法)。,数据封装,将实体的外部特性和其内部实现细节分离,并且对外部用户隐藏其内部实现细节。,抽象数据类型,抽象数据类型的描述方法,抽象数据类型可用,(D,S,P),三元组表示。,其中:D 是数据对象;,S 是 D 上的关系集;,P 是对 D 的基本操作集。,抽象数据类型,ADT,抽象数据类型名,数据对象:,数据对象的定义,数据关系:,数据关系的定义,基本操作:,基本操作的定义,ADT,抽象数据类型名,其中基本操作的定义格式为:,基本操作名,(参数表),初始条件:,初始条件描述,操作结果,:操作结果描述,抽象数据类

19、型,赋值参数,只为操作提供输入值。,引用参数,以,&,打头,除可提供输入值外,还将返回操作结果。,初始条件,描述了操作执行之前数据结构和参数应满足的条件,若不满足,则操作失败,并返回相应出错信息。,操作结果,说明了操作正常完成之后,数据结构的变化状况和应返回的结果。若初始条件为空,则省略之。,抽象数据类型,抽象数据类型需要通过固有数据类型(高级编程语言中已实现的数据类型)来实现。,例如,对以上定义的复数。,typedef struct,float,realpart;,float,imagpart;,complex;,/-存储结构的定义,/-基本操作的函数原型说明,void,Assign(com

20、plex,&Z,float realval,float imagval);,/,构造复数 Z,其实部和虚部分别被赋以参数,/,realval 和 imagval 的值,float,GetReal(cpmplex Z);,/返回复数 Z 的实部值,float Getimag(cpmplex Z);,/返回复数 Z 的虚部值,void add(complex z1,complex z2,complex&sum);,/以 sum 返回两个复数 z1,z2 的和,/-基本操作的实现,void,add(complex z1,complex z2,complex&sum),/以 sum 返回两个复数 z1

21、z2 的和,sum.realpart=z1.realpart+z2.realpart;,sum.imagpart=z1.imagpart+z2.imagpart;,其它省略,我们各章都是从抽象数据类型的角度开始讨论数据结构,数据结构和它的操作是一个整体。,一 算法的概念,算法是求解问题的操作序列,算法的基本特征:,1)有输入;2)有输出;3)有穷性;4)确定性;5)可行性。,求两个正整数 m,n 中的最大数MAX的算法,(1)若 m n 则 max=m (2)若 m=n 则 max=n,例,1.4 算法与算法分析,.,有穷性,对于任意一组合法输入值,在执行有穷步骤之后,一定能结束。即:算法中

22、的每一个步骤都能在有限的时间内完成。,.,确定性,在每种情况下所应执行的操作,在算法中都有确定的规定,使算法的执行者或阅读者都能明确其含义及如何执行。并且在任何条件下,算法都只有一条执行路径。,.,可行性,算法中的所以操作都必须足够基本,都可以通过已经实现的基本操作运算有限次实现之。,4.,有输入,作为算法加工对象的量值,通常体现为算法中的一组变量,有些输入量需要在算法执行过程中输入,而有的算法表面上可以没有输入,实际上已经被嵌入算法之中。,5.,有输出,它是一组与“输入”有确定关系的量值,是算法进行信息加工后得到的结果,这种确定关系即为算法的功能。,描述算法的书写规则,所有算法均以函数形式给

23、出,算法的输入数据来自参数表,参数表的参数在算法之前均进行类型说明,有关结点结构的类型定义,以及全局变量的说明等均在算法之前进行说明,评价算法标准(设计算法时,通常要考虑到达的目标),算法的正确性,可读性,可维护性,健壮性等,.,二、算法效率的衡量方法和准则,通常有两种衡量算法效率的方法,(1),事后统计的方法,缺点:1、必须执行程序,2、其他因素掩盖算法本质,(2),事前分析估算的方法,与算法执行时间相关的因素:,算法选用的策略,问题的规模,编写程序的语言,编译程序产生的机器代码的质量,计算机执行指令的速度,一个特定算法的“运行工作量”的大小,只依赖于问题的规模(通常用整数n表示),或者说,

24、它是问题规模的函数。假如,随着问题规模n的增长,算法执行时间的增长率和f(n)的增长率相同。,则可记作:,T(n)=O(f(n),1.4 算法与算法分析,如何估算算法的渐进时间复杂度:,算法控制结构原操作(固有数据类型的操作),算法的执行时间,原操作(i)的执行次数原操作(i)的执行时间(定值,可忽略),算法的执行时间与原操作执行次数之和成正比,通称为算法的时间复杂度。,1 算法时间复杂度T(n),从算法中选取一种对于所研究的问题来说是,基本操作的原操作,,,以该基本操作在算法中重复执行的次数作为算法运行时间的衡量标准,。,1.4 算法与算法分析,O(n,3,),称为矩阵相乘算法,时间复杂度,

25、O(n,3,),表示矩阵相乘算法执行时间与n,3,成正比,即O(n,3,)与n,3,同一数量级;,n 阶矩阵相乘的算法,For(i=1;i=n;i+)For(j=1;j=n;j+),c i j =0;For(k=1;k=n;k+)c i j +=a i k *b k j,乘法 加法,执行次数均为 n,3,例,矩阵相乘的基本运算:乘法 加法;,1.4 算法与算法分析,有些算法,基本操作执行次数与问题的输入数据有关,这时可考虑 (1)算法平均时间复杂度 (2)算法在最坏情况下的时间复杂度,100元买100支笔,其中钢笔 3元/支,圆珠笔 2元/支,铅笔 0.5元/支.写算法输出各种组合方案。,

26、例,?,解法1,#define N 100,void scheme(),int i,j,k,count,money;,for(i=0;i=N;i+)for(j=0;j=N;j+),for(k=0;k=N;k+),count=i+j+k;money=3*i+2*j+0.5*k;if(count=N&money=N),printf(“%d,%d,%d n%”,i,j,k);,算法的时间复杂度为O(N,3,),解法2,#define N 100,Void scheme(),int i,j;,for(i=0;i=N/3;i+),for(j=0;j=(N-3*i)/2;j+),if(3*i+2*j+0.

27、5*(N-i-j)=N),printf(“%d,%d,%dn%”,i,j,N-i-j);,时间复杂度为O(N,2,),2,算法空间复杂度,S(n,),算法的存储量包括:,输入数据所占的空间;,程序本身所占的空间;,辅助变量所占的空间。,在本课程中,用执行算法所需的辅助空间的大小作为算法所需空间的度量。设执行算法所需的辅助空间是问题规模n的某个函数g(n),则算法空间复杂度记作:,S(n)=O(g(n),表示算法辅助空间的增长率,与g(n)的增长率相同,例,计算,解法1,先计算x 的幂,存于power 中,再分别乘以相应的系数,#define N 100,float evaluate(float coef,float x,int n),float powerN,f;int i;,for(power 0=1,i=1;i=n;i+)poweri=x*poweri-1;for(f=0,i=0;i=0;i-)f=f*x+coefi;,return(f);,时间复杂度为O(n).空间复杂度为O(1),理解什么是数据结构,数据结构这门课程所研究的内容;,理解数据结构这门课程的一些基本概念,掌握数据结构的分类和表示;,理解抽象数据类型含义和表示,学会算法的时间复杂度和空间复杂度的分析,返回目录,本章的学习要点,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服