网站大量收购独家精品文档,联系QQ:2885784924

数据结构讲义第1章.pptVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

集合----结构中的数据元素之间除了同属于一个集合的关系外,别无其它关系。线性结构----结构中的数据元素之间存在一对一的关系。有且仅有一个开始和一个终端结点,除开始和终端结点外,所有结点都最多只有一个直接前趋和一个后继。数据结构的三方面的含义之一:逻辑结构---数据元素之间的关系01树形结构-----结构中的数据元素之间存在一个对多个的关系;如:树图状结构或网状结构-----结构中的数据元素之间存在多个对多个的关系。也即一个结点可能有多个直接前趋和直接后继。例如:图例如:线性表、栈、队列、串02第*页2010-9-1链式存储结构:在每一个数据元素中增加一个存放地址的指针,用此指针来表示数据元素之间的逻辑关系。数据结构在计算机中的表示称为数据的物理结构,又称为存储结构,其在计算机中有两种不同的表示方法:顺序表示和非顺序表示由此得出两种不同的存储结构:顺序存储结构和链式存储结构顺序存储结构:用数据元素在存储器中的相对位置来表示数据元素之间的逻辑关系。数据结构的三方面的含义之二:存储结构第*页2010-9-1数据结构的三个方面的含义:逻辑结构存储结构小结:(1)数据的逻辑结构、存储结构和数据的运算(算法)构成了数据结构三个方面的含义。(2)程序设计的实质是对实际问题选择一个好的数据结构,加之设计一个好的算法。而好的算法在很大程度上取决于描述实际问题的数据结构。第*页2010-9-1数据类型(DataType):在一种程序设计语言中,变量所具有的数据种类,是一个值的集合和定义在这个值集上一组操作的总称。对数据类型的用户来说,它实现了信息的隐蔽。例1、在FORTRAN语言中,变量的数据类型有整型、实型、和复数型例2、在C语言中数据类型:基本类型和构造类型基本类型:整型、浮点型、字符型构造类型:数组、结构、联合、指针、枚举型、自定义举例:C语言中的整型,其内涵为一定范围的自然数集合,及定义在该集合上的加减乘除及取模、比较大小操作。而实型则无取模操作。当然整型也不需四舍五入。用三元组描述如下:(D,S,P)抽象数据类型实际上就是对该数据结构的定义。因为它定义了一个数据的逻辑结构以及在此结构上的一组算法。抽象数据类型(AbstractDataType(ADT)):一个数学模型以及定义在该模型上的一组操作。其中:D表示数据对象,S表示D上的关系,P是对D的基本操作集抽象数据类型和数据类型实质上是一个概念,它们的不同之处仅仅在于:数据类型指的是高级程序设计语言支持的基本数据类型,而抽象数据类型指的是在基本数据类型支持下用户新设计的数据类型。01020304抽象数据类型一般定义:ADT抽象数据类型名{数据对象:参数表数据关系:数据关系的定义基本操作:基本操作的定义}ADT抽象数据类型名其中,数据对象和数据关系的定义用伪码表示,基本操作的定义格式为:05基本操作名(参数表)初始条件:初始条件描述操作结果:操作结果描述基本操作的参数两种形式:赋值参数只为操作提供输入值;引用参数以打头,除可提供输入值外,还将返回操作结果。例抽象数据类型三元组的定义01数据对象:D={e1,e2,e3|e1,e2,e3?ElemSet}数据关系:R={e1,e2,e2,e3}ADTTriplet{02InitTriplet(T,v1,v2,v3)基本操作:03被赋值参数v1,v2和v3的值。 操作结果:构造三元组T,元素e1,e2和e3分别第*页2010-9-1DestroyTriplet(T)操作结果:三元组T被销毁。Get(T,i,e)初始条件:三元组T已存在,操作结果:用e返回T的第i个元素值。Put(T,i,e)初始条件:三元组T已存在,操作结果:改变T的第i个元素值e。…}ADTTriplet1.3 抽象数据类型的表示与实现第*页2010-9-1例:线性表的实现:ADTList{数据对象:D={ai|ai(-ElemSet,i=1,2,...,n,n=0}数据关系:R1={ai-1,ai|ai-1,ai(-D,i=2,...,n}基本操作:InitList(L)DestroyList(L)ListInsert(L,i,e)ListDelete(L,i,e)}ADTList第*页2010-9-1ListInsert(ListL,inti,ElemTypee){if(i1||iL.length)returnERROR;q

文档评论(0)

135****6917 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档