数据结构复习要点..docxVIP

  1. 1、本文档共42页,可阅读全部内容。
  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文档。上传文档
查看更多
数据结构复习要点.

绪论数据(Data):是对客观事物的一种符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。包括数值,字符,图象,声音等。数据元素(Data Element):是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。一个数据元素可由若干个数据项组成。数据项是数据的不可分割的最小单位。数据对象(Data Object):是性质相同的数据元素的集合。是数据的一个子集。数据结构(Data Structure):是相互之间存在一种或多种特定关系的数据元素的集合。S = (D, R)其中D为数据元素的有限集,R为D上关系的有限集。例 复数的数据结构定义如下:Complex=(C,R)其中:C是含两个实数的集合﹛C1,C2﹜,分别表示复数的实部和虚部。R={P},P是定义在集合上的一种关系{〈C1,C2〉}。基本数据结构类型(根据数据元素之间的不同联系划分):集合线性结构树形结构图(网)状结构 集合线性树图(网)逻辑结构/数据结构:数据元素及其关系的数学特性。物理结构/存储结构:逻辑结构在计算机中的具体实现。数据类型:指一个值的集合以及在这些值上定义的一组操作的总称。包括基本数据类型、结构数据类型。在C语言中数据类型:基本类型和构造类型基本类型:整型、浮点型、字符型构造类型:数组、结构、联合、指针、枚举型抽象数据类型(Abstract Data Type 简称ADT):指抽象数据组织和与之相关的操作。每一个操作由它的输入和输出定义。抽象数据类型的定义取决于它的一组逻辑特性,而与其在计算机内的表示和实现无关。ADT可以定义为:(D,S,P)其中D表示数据对象,S是D上的关系集,P是对D的基本操作集。ADT使用伪码描述为:ADT抽象数据类型名{ 数据对象:数据对象的定义 数据关系:数据关系的定义 基本操作:基本操作的定义}ADT抽象数据类型名 数据结构的研究内容:数据的逻辑结构(Logical structure) 数据的存储结构(Storage structure 物理结构) 数据结构上的操作或处理(算法)数据的逻辑结构(简称数据结构):线性结构:有且仅有一个开始结点和终端结点,且所有结点最多只有一个直接前趋和直接后继。如:线性表,栈,队列非线性结构:一个结点可能有多个直接前趋和直接后继。如:树,图数据的存储结构: 顺序存储方法 (Sequential Storage Structure):数组 链接存储方法 (Linked Storage Structure):指针 索引存储方法:索引表 关键字,地址 散列存储方法:由关键字直接计算存储地址数据运算:定义在逻辑结构上,而在物理结构上实现如:插入,删除,更新,查找,排序算法和算法分析 程序 = 算法 + 数据结构算法:是对特定问题求解步骤的一种描述, 算法是指令的有限序列,其中每一条指令表示一个或多个操作。算法具有以下五个特性:有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。确定性:算法中每一条指令必须有确切的含义。不存在二义性。相同输入只能得到相同输出。可行性:一个算法是可行的。即算法描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。输入:一个算法有零个或多个输入,这些输入取自于某个特定的对象集合。输出:一个算法有一个或多个输出,这些输出是同输入有着某些特定关系的量。几种基本的算法设计方法枚举法:从问题的所有可能答案中找出满足条件的解。e.g 买鸡问题:公鸡每只5元,母鸡每只3元,小鸡3只一元,100元买100只鸡,有多少种买法?(算法见图一)图一 图二归纳法:找出问题的规律递推:逐次推求中间结果和最后结果e.g 计算Fibonacci数列:数列第1项为1,第2项为1,从第三项开始,每一项等于前两项之和。 f = (1,1,2,3,5,8,13,21,34,…… )递归:自己调用自己e.g 计算阶乘: F(n)=F(n-1)*n, F(1)=1(算法见图二)回溯法通过“试”找到问题的解。 如在一些游戏中,找出一个解决问题的途径,然后选出一条“试走”,若此路不通,退回换路线重走。数字模拟法:数字仿真问题很难建立数学模型,用随机数模拟随机现象。算法设计的要求评价一个好的算法有以下几个标准:(1)正确性(Correctness ):算法应满足具体问题的需求。(2)可读性(Readability):算法应该好读。以有利于阅读者对程序的理解。(3)健状性(Robustness):算法应具有容错处理。当输入非法数据时,算法应对其作出反应,而不是产年莫名其妙的输出结果。(4)效率与存储量需求:效率指的是算法执行的时间;存储量需求指算法执行过程中所需要的最大存储空间。一般,这两者与问题的规模有关。定理:若A(n)=a m n m +

文档评论(0)

s4as2gs2cI + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档