- 1、本文档共123页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课数据结构复习
数据结构定义1----
是相互之间存在一种或多种特定关系的数据元素的集合。据结构定义2----
按某种逻辑关系组织起来的一批数据(或称带结构的数据元素的集合)应用计算机语言并按一定的存储表示 方式把它们存储在计算机的存储器中,并在其上定义了一个运算的集合。
数据结构包含三个方面的内容,即数据的逻辑结构,数据的存贮结构和对数据所施加的运算(操作)。
逻辑结构---划分方法
一、集合 结构中的数据元素除了同属于一种类型外,别无其它关系。
二、线性结构 结构中的数据元素之间存在一对一的关系。
三、树型结构 结构中的数据元素之间存在一对多的关系。
四、图状结构或网状结构
结构中的数据元素之间存在多对多的关系。
Q1 数据类型与抽象数据类型的区别?
数据类型:是一个值的集合和定义在该值上
的一组操作的总称。
抽象数据类型:由用户定义,用以表示应用问题的数据模型。它由基本的数据类型构成,并包括一组相关的服务(或称操作)
它与数据类型实质上是一个概念,但其特征是使用与实现分离,实行封装和信息隐蔽(独立于计算机)。
1.4 算法和算法分析
一、算法的概念和描述:
1、什么是算法?
是对特定问题求解步骤的一种描述,算法是指令的有限序列,其中每一条指令表示一个或多个操作。
N.Wirth:算法 + 数据结构 = 程序
程序就是在数据的某特定的表示方式(结构)的基础上对抽象算法的具体表述。
Turing 1936 第一个系统地提出 算法思想
(Turing Machine)
2、 算法描述
算法具有以下五个特性:
1)有穷性 一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。
2)确定性 算法中每一条指令必须有确切的含义。不存在二义性。且算法只有一个入口和一个出口。
3)可行性 一个算法是可行的。即算法描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。
4)输入 一个算法有零个或多个输入,这些输入取自于某个特定的对象集合。
5)输出 一个算法有一个或多个输出,这些输出是同输入有着某些特定关系的量。
算法设计的要求:
评价一个好的算法有以下几个标准:
(1) 正确性(Correctness ) 算法应满足具体问题的需求。
(2)可读性(Readability) 算法应该好读。以有利于阅读者对程序的理解,便于调试和修改。
(3)健状性(Robustness) 算法应具有容错处理。当输入非法数据时,算法应对其作出反应,而不是产生莫名其妙的输出结果。
(4)效率与存储量需求 效率指的是算法执行的时间;存储量需求指算法执行过程中所需要的最大存储空间。一般,这两者与问题的规模有关。
算法的效率可以认为是问题规模的函数.主要从时间复杂度和空间复杂度来考虑。
时间复杂度
1、时间频度
一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。
2、时间复杂度
在刚才提到的时间频度中,n称为问题的规模,当n不断变化时,时间频度T(n)也会不断变化。为此,我们引入时间复杂度概念。
一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐近时间复杂度,简称时间复杂度。
例如,若T(n)=n(n+1)/2,则有 1/4≤T(n)/n2≤1,故它的时间复杂度为O(n2), 即T(n)与n2 数量级相同。
四、空间复杂度
与时间复杂度类似,空间复杂度是指算法在计算机内执行时所需存储空间的度量。记作:
S(n)=O(f(n))
我们一般所讨论的是除正常占用内存开销外的辅助存储单元规模。讨论方法与时间复杂度类似,不再赘述。
线性结构包括线性表、堆栈、队列、字符串、数组等等,其中,最简单、最常用的是------线性表
简言之,线性结构反映结点间的逻辑关系是 一对一 的
顺序存储方法:用一组地址连续的存储单元依次存储线性表的元素,可通过数组来实现。
顺序表的特点是以元素在计算机内物理位置相邻来表示线性表中数据元素之间的逻辑关系
2.3 .1 链表的表示
以链式结构存储的线性表称之为线性链表。
特点:
用一组任意的存储单元存储线性表的数据元素
利用指针实现了用不相邻的存储单元存放逻辑上相邻的元素
每个数据元素ai,除存储本身信息外,还需存储其直接后继的信息
结点
数据域:元素本身
文档评论(0)