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

2017年电大自考数据结构重点(珍藏版)小抄参考.doc

2017年电大自考数据结构重点(珍藏版)小抄参考.doc

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2017年电大自考数据结构重点(珍藏版)小抄参考.doc

自考数据结构重点(周尧整理) 第一章 概论 数据是信息的载体数据元素是数据的基本单位一个数据元素可以由若干个数据项组成数据结构指的是数据之间的相互关系,即数据的组织形式。数据结构一般包括以下三方面内容:数据的逻辑结构数据的存储结构数据的运算数据元素之间的逻辑关系,也称数据的逻辑结构数据的逻辑结构是从逻辑关系上描述数据,与数据的存储无关,是独立于计算机的。数据元素及其关系在计算机存储器内的表示,称为数据的存储结构数据的存储结构是逻辑结构用计算机语言的实现它依赖于计算机语言。数据的运算,即对数据施加的操作。最常用的检索、插入、删除、更新、排序等??? 线性表是一个典型的线性结构。栈、队列、串等都是线性结构。 ②非线性结构:一个结点可能有多个直接前趋和直接后继。 数组、广义表、树和图等数据结构都是非线性结构。 7.数据的四种基本存储方法: 顺序存储方法、链接存储方法、索引存储方法、散列存储方法 (1)顺序存储方法: 该方法把逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。通常借助程序语言的数组描述。 (2)链接存储方法: 该方法不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系由附加的指针字段表示。通常借助于程序语言的指针类型描述。 (3),(关键字、地址) 关键字是能唯一标识一个结点的那些数据项。 (4) 抽象数据类型ADT):是指抽象数据的组织和与之相关的操作。可以看作是数据的逻辑结构及其在逻辑结构上定义的操作。抽象数据类型可以看作是描述问题的模型,它独立于具体实现。它的优点是将数据和操作封装在一起,使得用户程序只能通过在ADT里定义的某些操作来访问其中的数据,从而实现了信息隐藏。 算法+数据结构=程序 ????? 数据结构:是指数据的逻辑结构和存储结构 ????? 算法:是对数据运算的描述 数据的运算通过算法描述算法是任意一个良定义的计算过程。它以一个或多个值作为输入,并产生一个或多个值作为输出。若一个算法对于每个输入实例均能终止并给出正确的结果,则称该算法是正确的。正确的算法解决了给定的计算问题。 选用的算法首先应该是正确的。此外,主要考虑如下三点: 执行算法所耗费的时间; 执行算法所耗费的存储空间,其中主要考虑辅助存储空间; 算法应易于理解,易于编码,易于调试等等。 一个算法所耗费的时间=算法中每条语句的执行时间之和每条语句的执行时间=语句的执行次数(即频度(Frequency Count))×语句执行一次所需时间算法求解问题的输入量称为问题的规模(Size),一般用一个整数表示。 一个算法的时间复杂度T(n)是该算法的时间耗费,是该算法所求解问题规模n的函数。当问题的规模n趋向无穷大时,时间复杂度T(n)的数量级(阶)称为算法的渐进时间复杂度。平均时间复杂度是指所有可能的输入实例均以等概率出现的情况下,算法的期望运行时间。 常见的时间复杂度按数量级递增排列依次为:常数0(1)、对数阶0(log2n)、线形阶0(n)、线形对数阶0(nlog2n)、平方阶0(n2)立方阶0(n3)、…、k次方阶0(nk)、指数阶0(2n)。 一个算法的空间复杂度S(n)定义为该算法所耗费的存储空间,它也是问题规模n的函数。 线性表(Linear List)是由n(n≥0)个数据元素(结点)a1a2,…,an组成的有限序列。 线性表的逻辑结构特征对于非空的线性表: ???   有且仅有一个开始结点a1,没有直接前趋,有且仅有一个直接后继a2; ??? 有且仅有一个终结结点an,没有直接后继,有且仅有一个直接前趋an-1; ??? 其余的内部结点ai(2≤i≤n-1)都有且仅有一个直接前趋ai-1和一个ai+1。常见的线性表的基本运算1)InitList(L) 构造一个空的线性表L,即表的初始化。 2)ListLength(L)求线性表L中的结点个数,即求表长。 3)GetNode(L,i) 取线性表L中的第i个结点,这里要求1≤i≤ListLength(L) 4)LocateNode(L,x)在L中查找值为x 的结点,并返回该结点在L中的位置。若L中有多个结点的值和x 相同,则返回首次找到的结点位置;若L中没有结点的值为x ,则返回一个特殊值表示查找失败。 5)InsertList(L,x,i)在线性表L的第i个位置上插入一个值为x 的新结点,使得原编号为i,i+1,…,n的结点变为编号为i+1,i+2,…,n+1的结点。这里1≤i≤n+1,而n是原表L的长度。插入后,表L的长度加1。 6)DeleteList(L,i)删除线性表L的第i个结点,使得原编号为i+1,i+2,…,n的结点变成编号为i,i+1,…,n-1的结点。这里1≤i≤n,而n是原表L的长度。删除后表L的

文档评论(0)

zhangningclb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档