- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
教材: 数据结构(C语言版) 严蔚敏 清华大学出版社 参考书: 数据结构——使用C语言 朱战立 西安交通大学出版社 数据结构与算法 齐德昱 清华大学出版社 数据结构与算法——C++版(第2版) Adam Drozdek 清华大学出版社 课程与考试安排: 第8、11、12章不作要求 有**号的小节不作要求 期末成绩和平时成绩各占60%和40% 1.1.1 什么是数据结构 程序设计=数据模型+算法 程序设计:为计算机处理问题编制的一组指令集 数据模型:现实问题的抽象 算法:处理问题的策略 数值计算问题——数学模型是一组线性或非线性的代数方程组或微分方程组 非数字计算问题(包括管理、控制、数据处理等)——数学模型是数据结构 例1 书目自动检索系统 例2 人机对奕问题 多叉路口交通灯管理问题 数据结构定义: 是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等等的学科 1.1.2 为什么要学数据结构 程序设计的需要 计算机专业基础课 编译程序、操作系统、数据库系统和大型应用程序 1.2 基本概念和术语 数据(data)——所有能输入到计算机中去的描述客观事物的符号,数据是信息的载体 数据元素(data element)——数据的基本单位,数据中的一个“个体” 数据项(data item)——数据的最小单位,数据元素是数据项的组合,有组合项和原子项之分 数据对象(data object)——性质相同的数据元素的集合,如整数、所有书目信息等 数据结构(data structure)——数据元素和数据元素关系的集合,数据元素相同而关系不同的数据结构是不同的数据结构 数据结构的形式定义为: 数据结构是一个二元组 Data_Structures = ( D,S ) 其中:D是数据元素的有限集, S是D上关系的有限集。 数据的逻辑结构—只抽象反映数据元素的逻辑关系 数据的存储(物理)结构—数据的逻辑结构在计算机存储器中的实现 1.3 抽象数据类型 数据类型(data type)——一个值的集合和定义在此集合上的一组操作的总称 抽象数据类型(abstract data type,ADT)——一个数学模型以及定义在此数学模型上的一组操作 抽象不同语言不同处理器相同的数学特征(即已定义的数据类型) 设计软件时自定义的数据类型 ADT有两个重要特征: 数据抽象:用ADT描述程序处理的实体时,强调的是其本质特征和外界使用它的方法 数据封装:将实体的外部特性和其内部实现细节分离,并且对外部用户隐藏其内部实现细节 抽象数据类型包含定义、表示和实现三部分。 抽象数据类型的形式描述为: ADT = ( D,S,P ) 其中:D 是数据对象, S 是 D 上的关系集, P 是 D 的基本操作集。 1.抽象数据类型的定义 ADT形式定义为:ADT 抽象数据类型名 { 数据对象: 数据对象的定义 数据关系: 数据关系的定义 基本操作: 基本操作的定义 } ADT 抽象数据类型名 其中,数据对象和数据关系的定义用伪码描述,基本操作的定义格式为 基本操作名 (参数表) 初始条件:〈初始条件描述〉 操作结果:〈操作结果描述〉 基本操作有两种参数:赋值参数只为操作提供输入值;引用参数以打头,除可提供输入值外,还将返回操作结果。 初始条件描述了操作执行之前数据结构和参数应满足的条件,若不满足,则操作失败,并返回相应出错信息。若初始条件为空,则可省略之。 操作结果说明了操作正常完成之后,数据结构的变化状况和应返回的结果。 例:抽象数据类型复数的定义为: ADT Complex { 数据对象:D = {e1,e2 | e1,e2∈RealSet} 数据关系:R1 = {e1,e2 | e1是复数的实部,e2是复数的虚部 } 基本操作: InitComplex( Z, v1, v2 ) 操作结果:构造复数Z,其实部和虚部分别被赋以参数v1和v2的值。 DestroyComplex( Z) 初始条件:复数已存在。 操作结果:复数Z被销毁。 GetReal( Z, realPart ) 初始条件:复数已存在。 操作结果:用 realPart 返回复数Z的实部值。 GetImag( Z, ImagPart ) 初始条件:复数已存在。 操作结果:用 ImagPart 返回复数Z的虚部值。 Add( z1,z2, sum ) 初始条件:z1,z2 是复数。 操作结果:用sum返回两个复数z1,z2的和值。} ADT Compl
原创力文档


文档评论(0)