《数据结构》考研真题与考研复习_第1页
《数据结构》考研真题与考研复习_第2页
《数据结构》考研真题与考研复习_第3页
《数据结构》考研真题与考研复习_第4页
《数据结构》考研真题与考研复习_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2021年《数据结构》考研真题与考研复习

1.1知识要点总结

一、数据结构的基本概念

1.基础概念和术语

(1)数据(Data):数据是客观事物的符号表示。在计算机科学中指的是所有能输入

到计算机中并被计算机程序处理的符号的总称。

(2)数据元素(DataElement):数据元素是数据的基本单位,在程序中通常作为一

个整体来进行考虑和处理。

(3)数据项(DataItem):数据项是数据的不可分割的最小单位,数据项是对客观

事物的某一方面的数据描述。一个数据元素可由若干个数据项(DataItem)组成。

(4)数据对象(DataObject):数据对象是性质相同的数据元素的集合,是数据的

f子集。如字符集合C={'A'B'

(5)数据结构(DataStructure):数据结构是指相互之间存在一定联系(关系)的

数据元素的集合。元素之间的相互联系(关系)称为逻辑结构。

2.数据结构的形式定义

数据结构的形式定义是一个二元组:

DataStructure=(D,S)

其中D是数据元素的有限集,S是D上关系的有限集。

数据元素之间的关系可以是元素之间本身代表的某种自然关系,也可以是为了处理问

题方便而人为定义的关系,这种自然或人为定义的关系称为数据元素之间的逻辑关系,相

应的结构称为逻辑结构。

3.数据结构的组成

数据结构的三个组成部分:

(1)逻辑结构

数据元素之间的逻辑关系的描述。数据元素之间的逻辑结构有四种基本类型:

①集合:结构中的数据除了"同属于一个集合"外,没有其它关系。

②线性结构:结构中的数据元素之间存在一对一的关系。

③树形结构:结构中的数据元素之间存在一对多的关系。

④图形结构或网状结构:结构中的数据元素之间存在多对多的关系。

(2)存储结构

数据结构在计算机中的实际表达方式,它包括对数据元素的表示和对关系的表示。存

储结构主要有:顺序存储、链式存储、索引存储和散列存储。

①顺序存储结构:用数据元素在存储器中的相对位置来表示数据元素之间的逻缉结构。

数据元素存放的地址是连续的。其优点是可以实现随机存取,存储空间小;缺点是只能使

用相邻的一整块存储单元,容易产生碎片。

②链式存储结构:在每一个数据元素中增加一个存放另一个元素地址的指针,用该指

针来表示数据元素之间的逻辑结构。对数据元素存放的地址是否连续没有要求。其优点是

能充分利用所有存储单元;缺点是每个结点都需要额外的存储空间,且只能实现)顺序存取。

③索引存储结构:在存储元素信息的同时.还建立附加的索引表。索引表中的每一项

称为索引项,索引项的一般形式是:(关键字.地址),关键字唯一标识一个元素,地址作

为指向元素的指针。其优点是检索速度快;缺点是需要额外的存储空间来存放索引表。

④散列(或哈希)存储结构:根据元素的关键字通过哈希函数直接计算出该元素的存

储地址.其优点是检索速度快,缺点是可能存在冲突,而解决冲突会增加时空开销.

(3)数据操作

对数据要进行的运算。

【例】下列有关数据存储结构的叙述中,正确的是(I

A.顺序存储方式只能用于存储线性结构

B.顺序存储方式的优点是占用存储空问小,插入删除等操作效率高

C.链表的每个结点中都恰好含有一个指针

D.Hash存储的基本思想是由关键词的值决定数据的存储地址

【答案】D查看答案

【解析】顺序存储方式除了用于存储线性结构外,还能存储数组或完全二叉树等非线

性结构,但在插入、删除操作时,由于要移动大量的数据,执行效率低。链表的形式

有单链表、双链表和多重链表,除了单链表外,其他链表中的结点需要两个以上的指针。

二、抽象数据类型

1.数据类型

数据类型(DataType):数据类型是一个值的集合和定义在该集合上的一组操作的总

称。

2.抽象数据类型

抽象数据类型(ADT):是指一个数学模型以及定义在该数据模型上的一组操作。

ADT的定义仅是一组逻辑特性的描述,与其在计算机内的表示和实现无关。因此,不

论ADT内部结构如何变化,只要其数学特性不变,都不影响其外部使用。

ADT的形式化定义是三元组:ADT={D,S,P}。

其中:D是数据对象,S是D上的关系集,P是对D的基本操作集。

三、算法分析

1.算法

(1)概念

算法(Algorithm):算法是对特定问题求解方法(步骤)的一种描述,是指令的有限

序列,其中每一条指令表示一个或多个操作。

(2)特性

算法由五个特性:

①有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。

②确定性:算法中每一条指令必须有确切的含义,不存在二义性,且算法只有一个入

口和出口。

③可行性:算法描述的操作都可以通过已经实现的基本运算执行有限次来实现。

④输入:一个算法有零个或多个输入,这些输入取自于某个特定的对象集合。

⑤输出:一个算法有一个或多个输出,这些输出同输入有着某些特定关系的量。

(3)评价标准

评价一个好的算法有以下几个标准:

①正确性:算法应满足具体问题的需求。

②可读性:算法应容易供人阅读和交流。可读性好的算法有助于对算法的理解口修改。

③健壮性:算法应具有容错处理。当输入非法或错误数据时,算法能适当地做出反应

或进行处理。

④通用性:算法应具有一般性,处理结果对于一般数据集合都成立。

⑤效率和存储量需求:效率指的是算法执行的时间;存储量需求指的是执行过程中所

需要的最大存储空间。

2.效率的度量

(1)时间复杂度

算法中的基本操作重复执行的次数是问题规模n的某个函数,其时间度量记做丁(n)

=0(f(n))(其中"0"是指T(n)的数量级),称作算法的渐进时间复杂度,简称时间

复杂度。

算法的时间复杂度一般用最深层循环内的语句中的原操作的执行频度(重复执行的次

数)来表示。

常用的时间复杂度的关系:

0(1)<0(log2n)<0(n)<0(nlog2n)<0(n2)<0(n3)

指数时间复杂度关系为:0(2n)<0(n!)<0(即)

有的情况下,算法中基本操作重复执行的次数会随问题的输入数据集的不同而不同

(2)空间复杂度

空间复杂度指的是算法编写成程序后,在计算机中运行时所需存储空间大小的度量。

记做:S(n)=0(f(n)),其中n为问题的规模。

空间复杂度一般包括三个方面:

①指令常数变量所占用的存储空间。

②输入数据所占用的存储空间。

③辅助存储空间。

【例】有以下算法,其时间复杂度为(

voidfun(intn)

(

imp=1,d=n,f=n;

while(d>0)

(

if(d%2==i)

p-p*b

f=f*f;d=d/2^

)

}

A.0(1)

B.O(log2n)

C.O(n)

D.(nlog2n)

【答案】B。查看答案

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论