02331数据结构研讨.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
02331数据结构 第一章 概论 数据是信息的载体。 数据元素是数据的基本单位。 一个数据元素可以由若干个数据项组成。 数据结构指的是数据之间的相互关系,即数据的组织形式。 数据结构一般包括以下三方面内容:数据的逻辑结构、数据的存储结构、数据的运算 ①数据元素之间的逻辑关系,也称数据的逻辑结构,数据的逻辑结构是从逻辑关系上描述数据,与数据的存储无关,是独立于计算机的。 ②数据元素及其关系在计算机存储器内的表示,称为数据的存储结构。 数据的存储结构是逻辑结构用计算机语言的实现,它依赖于计算机语言。 ③数据的运算,即对数据施加的操作。最常用的检索、插入、删除、更新、排序等。 6. 数据的逻辑结构分类: 线性结构和非线性结构 ①线性结构:若结构是非空集,则有且仅有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。 ??? 线性表是一个典型的线性结构。栈、队列、串等都是线性结构。 ②非线性结构:一个结点可能有多个直接前趋和直接后继。 数组、广义表、树和图等数据结构都是非线性结构。 7.数据的四种基本存储方法: 顺序存储方法、链接存储方法、索引存储方法、散列存储方法 (1)顺序存储方法: 该方法把逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。通常借助程序语言的数组描述。 (2)链接存储方法: 该方法不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系由附加的指针字段表示。通常借助于程序语言的指针类型描述。 (3)索引存储方法: 该方法通常在储存结点信息的同时,还建立附加的索引表。 索引表由若干索引项组成。若每个结点在索引表中都有一个索引项,则该索引表称之为稠密索引,稠密索引中索引项的地址指示结点所在的存储位置。若一组结点在索引表中只对应一个索引项,则该索引表称为稀疏索引稀疏索引中索引项的地址指示一组结点的起始存储位置。索引项的一般形式是:(关键字、地址) 关键字是能唯一标识一个结点的那些数据项。 (4)散列存储方法: 该方法的基本思想是:根据结点的关键字直接计算出该结点的存储地址。 8. 抽象数据类型(ADT):是指抽象数据的组织和与之相关的操作。可以看作是数据的逻辑结构及其在逻辑结构上定义的操作。 抽象数据类型可以看作是描述问题的模型,它独立于具体实现。它的优点是将数据和操作封装在一起,使得用户程序只能通过在ADT里定义的某些操作来访问其中的数据,从而实现了信息隐藏。 9. 算法+数据结构=程序 ????? 数据结构:是指数据的逻辑结构和存储结构 ????? 算法:是对数据运算的描述 10. 数据的运算通过算法描述的。算法是任意一个良定义的计算过程。它以一个或多个值作为输入,并产生一个或多个值作为输出。若一个算法对于每个输入实例均能终止并给出正确的结果,则称该算法是正确的。正确的算法解决了给定的计算问题。 11. 选用的算法首先应该是正确的。此外,主要考虑如下三点: ① 执行算法所耗费的时间; ② 执行算法所耗费的存储空间,其中主要考虑辅助存储空间; ③ 算法应易于理解,易于编码,易于调试等等。 12. 一个算法所耗费的时间=算法中每条语句的执行时间之和,每条语句的执行时间=语句的执行次数(即频度(Frequency Count))×语句执行一次所需时间。 13.算法求解问题的输入量称为问题的规模(Size),一般用一个整数表示。 14. 一个算法的时间复杂度T(n)是该算法的时间耗费,是该算法所求解问题规模n的函数。当问题的规模n趋向无穷大时,时间复杂度T(n)的数量级(阶)称为算法的渐进时间复杂度。平均时间复杂度是指所有可能的输入实例均以等概率出现的情况下,算法的期望运行时间。 15. 常见的时间复杂度按数量级递增排列依次为:常数0(1)、对数阶0(log2n)、线形阶0(n)、线形对数阶0(nlog2n)、平方阶0(n2)立方阶0(n3)、…、k次方阶0(nk)、指数阶0(2n)。 16. 一个算法的空间复杂度S(n)定义为该算法所耗费的存储空间,它也是问题规模n的函数。 第二章 线性表 1. 线性表(Linear List)是由n(n≥0)个数据元素(结点)a1,a2,…,an组成的有限序列。 2. 线性表的逻辑结构特征,对于非空的线性表: ???  ① 有且仅有一个开始结点a1,没有直接前趋,有且仅有一个直接后继a2; ???② 有且仅有一个终结结点an,没有直接后继,有且仅有一个直接前趋an-1; ???③ 其余的内部结点ai(2≤i≤n-1)都有且仅有一个直接前趋ai-1和一个ai+1。 3.常见的线性表的基本运算: (1)InitList(L) 构造一个空的线性表L,即表的初始化。 (2)ListLength(L)求线性表L中的

文档评论(0)

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

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

1亿VIP精品文档

相关文档