2023年数据结构考研真题和答案_第1页
2023年数据结构考研真题和答案_第2页
2023年数据结构考研真题和答案_第3页
2023年数据结构考研真题和答案_第4页
2023年数据结构考研真题和答案_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

一、选择题

1.算法计算量大小称为计算(B)。【北京邮电大学二、3(20/8

分)】

A.效率B.复杂性C.现实性D.难度

2.算法时间复杂度取决于(C)【中科院计算所1998二、1(2

分)】

A.问题规模B.待处理数据初态C.A和B

3.计算机算法指是(C),它必需具有(B)这三个特性。

(1)A.计算措施B.排序措施C.处理问题环节序列

D.调度措施

(2)A.可实行性、可移植性、可扩充性B.可实行性、确定性、

有穷性

C.确定性、有穷性、稳定性D.易读性、稳定性、安

全性

【南京理工大学1999一、1(2分)【武汉交通科技大学1996

一、1(4分)】

4.一种算法应当是(B)o【中山大学1998二、1(2分)】

A.程序B.问题求解环节描述C.要满足五个基础特性

D.A和C.

5.下面有关算法说法错误是(D)【南京理工大学一、1(1.5

分)】

A.算法最终必需由计算机程序实现

B.为处理某问题算法同为该问题编写程序含义是相似

C.算法可行性是指指令不能有二义性D.以上多种所有是

错误

6.下面说法错误是(C)【南京理工大学一、2(1.5分)】

(1)算法原地二作含义是指不需要任何额外辅助空间

(2)在相似规模n下,复杂度0(n)算法在时间上总是优于复杂度

0⑵)算法

(3)所谓时间复杂度是指最坏状况下,估算算法实行时间一种上界

(4)同一种算法,实现语言等级越高,实行效率就越低4

A.(1)B.(1),(2)C.(1),(4)D.(3)

7.从逻楫上可以把数据构造分为(C)两大类。【武汉交通科技大学

1996一、4(2分)】

A.动态构造、铮态构造B.次序构造、链式构造

C.线性构造、非线性构造D.初等构造、构造型构造

8.如下和数据寄存构造无关术语是(D)o【北方交通大学二、1

(2分)】

A.循环队列B.链表C.哈希表D.栈

9.如下数据构造由,哪一种是线性构造(D)?【北方交通大学

一、1(2分)】

A.广义表B.二叉树C.稀疏矩阵D.串

10.如下那一种术语和数据寄存构造无关?(A)【北方交通大学

一、2(2分)】

A.栈B.哈希表C.线索树D.双

向链表

11.在下面程序段中,对x赋值语句频度为(C)【北京工商大学

一、10(3分)】

FORi:=1TOnDO

FORj:=1TOnDO

x:=x+1;

16.持续寄存设计时,寄存单元地址(A)。【中山大学1999一、1

(1分)】

A.一定持续B.一定不持续C.不一定持续D.部分持续,部分

不持续

17.如下属于逻辑构造是(C)o【西安电子科技大学应用一、

1]

A.次序表B.哈希表C.有序表D.单桀

二、鉴定题

1.数据元素是数据最小单位。(X)

【北京邮电大学1998—、1(2分)】【青岛大学一、1(1

分)】

【上海交通大学1998一、1】【山东师范大学一、1(2

分)】

2.记录是数据处理最小单位。(X)【上海海运学院1998一、5(1分)】

3.数据逻辑构造是指数据各数据项之间逻辑关系;(X)【北京邮电大

学一、1(1分)】

4.算法优劣和算法描述语言无关,但和所用计算机有关。(X)

【大连海事大学一、10(1分)】

5.强健算法不会因非法输入数据而出现莫名其妙状态。(0)

【大连海事大学一、11(1分)】

6.算法可以用不同样语言描述,假如用C语言或PASCAL语言等高级涪

言来描述,则算法实际上就是程序了。(X)【西安交通大学1996

二、7(3分)】

7.程序一定是算法。(X)【燕山大学1998二、2(2分)并改错】

8.数据物理构造是指数据在计算机内实际寄存形式。(0)【山东师范

大学一、2(2分)】

9.数据构造抽象操作定义和详细实现有关。(X)【华南理工大学一、1(1分)】

10.在次序寄存构造中,有时也寄存数据构造中元素之间关系。(X)

【华南理工大学一、2(1分)】

11.次序寄存措施长处是寄存密度大,且插入、删除运算效率高。(X)

【上海海运学院1999一、1(1分)】

12.数据构造基础操作设置最关键准则是,实现应用程序和寄存构造独立。(0)

【华南理工大学一、5(1分)】

13.数据逻辑构造阐明数据元素之间次序关系,它依托于计算机储存构造.(X)

【上海海运学院1998一、1(1分)】

三、填空

1.数据物理构造包括数据元素表达和数据元素间关系表达。【燕山大学

1998一、1(2分)】

2.对于给定n个元素,可以构造出逻辑构造有集合线性构造树形构

造图状构造(或网状构造)四种。

【中科院计算所1999二、1(4分)】

3.数据逻辑构造是指数据组织形式,即数据元素之间逻辑关系总体。而

逻辑关系是指数据元素之间关联措施或称“邻接关系”。【北京邮电大学

二、1(2分)】

4.一种数据构造在计算机中表达(又称映像)称为寄存构造。【华中理

工大学一、1(1分)】

5.抽象数据类型定义仅取决于它一组逻辑特性,而和在计算机内部怎样

表达和实现无关,即不管其内部构造怎样变化,只要它数学特性不变,所

有不影响其外部使月。【山东大学三、3(2分)】

6.数据构造中评价算法两个关键指标是算法时间复杂度和空间复杂度

【北京理工大学七、1(2分)】

7.数据构造是研讨数据—逻辑构造和物理构造,和它们之间互相关

系,并对和这种构造定义对应操作(运算),设计出对应算法。【西安电

子科技大学1998二、2(3分)】

8.一种算法具有5个特性:(1)有穷性(2)确定性(3)可行性,

有零个或多种输入、有一种或多种输出。

【华中理工大学一、2(5分)】【燕山大学1998—、2(5

分)】

9.已知如下程序段

FORi:=nDOWNTO1DO{语句1j

BEGIN

x:=x+1;{语句2}

FORj:=nDOWNTOiDO{语句3}

y:=y+l;[语句4)

END:

语句1实行频度为」+1_;语句2实行频度为n;语句3实行频度为

n(n+3)/2;语句4实行频度为n(n+1)/2o【北方交通大学1999二、4

(5分)】

10.在下面程序段中,对x赋值语句频度为1+(1+2++(1+2+3)+…

+(1+2+…+n)=n(n+1)(n+2)/60(n3)

(表达为n函数)

FORi:=1TOnDO

FORj:=1TOiDO

FORk:=1TOjDO

x:=x+delta;

【北京工业大学1999一、6(2分)】

11.下面程序段中带下划线语句实行次数数量级是:log2n【合肥工业大学1999三、1

分)】

i:=1:WHILEi<nDOi:=i*2;

12.下面程序段中带下划线语句实行次数数量级是(nlog2n)0【合肥

工业大学三、1(2分)】

i:=1;

WHILEi<nBEGINFORj:=1TOnDOx:=x+1;i:=i*2END;

13.下面程序段中带有下划线语句实行次数数量级是(log2n2)【合

肥工业大学三、1(2分)】

i:=n*nWHILEi<>1DOi:=idiv2;

14.计算机实行下面语句时,语句s实行次数为(n+3)(n-2)/2。

【南京理工大学二、1(1.5分)】

FOR(i=l;i<n-l;i++)

FOR(j=n;j>=i;j—)

s;

15.下面程序段时间复杂度为0(n)o(n>1)

sum=1;

for(i=0;sum<n;i++)sum+=1;【南京理工大学二、1(2

分)】

16.设nn均为自然数,m可表达为部分不超过n自然数之和,f(m,n)为

这种表达措施数目。例f(5,3)=5,有5种表达措施:3+2,3+1+1,

2+2+1,2+1+1+1,1+1+1+1+1O

①如下是该函数程序段,请将未完毕部分填入,使之完整

intf(m,n)

intm,n;

{if(m==1)

return工;

if(n=1){

return];}

if(m<n)

{returnf(m,m);)

if(mr=n)

{return1+f(m,n-1);}

returnf(m.n-1)+f(m-n,n);

)

②实行程序,f(6,4)=_9o【中科院软件所1997二、1(9

分)】

17.在有n个选手参与单循环赛中,总共将进行n(n-1)/2

场比赛。【合肥工业大学1999三、8(2分)】

四、应用题

1.数据构造是一门研究什么内容学科?【燕山大学1999二、1(4

分)】

数据构造是一门研究在非数值计算程序设计问题中,计算机操作对

象及对象间关系和施加于对象操作等学科。

2.数据元素之间关系在计算机中有多种表达措施?各有什么特点?【燕

山大学1999二、2(4分)】

四种表达措施

(1)次序寄存措施。数据元素次序寄存,每个寄存结点只含一种元

素。寄存位置反应数据元素间逻楫关系。寄存密度大,但有些操作(如插

入、删除)效率较差。

(2)链式寄存措施。每个寄存结点除包括数据元素信息外还包括一组

(至少一种)指针。指针反应数据元素间逻辑关系。这种措施不规定寄存

空间持续,便于动态操作(如插入、删除等),但寄存空间开销大(用于

指针),此外不能折半查找等。

(3)索引寄存措施。除数据元素寄存在一地址持续内存空间外,尚需

建立一种索引表,文引表中索引指示寄存结点寄存位置(下标)或寄存区

间端点(下标),兼有静态和动态特性。

(4)散列寄存措施。通过散列函数和处理冲突措施,将关键字散列在

持续有限地址空间W,并将散列函数值解释成关键字所在元素寄存地址,

这种寄存措施称为散列寄存。其特点是存取速度快,只能按关键字随机存

取,不能次序存取,也不能折半存取。

3.数据类型和抽象数据类型是怎样定义。两者有何相似和不同样之处,

抽象数据类型关键特点是什么?使用抽象数据类型关键好处是什么?【北

京邮电大学1994一(8分)】

数据类型是程序设计语言中一种概念,它是一种值集合和操作集合。

如C语言中整型、实型、字符型等。整型值范围(对详细机器所有应有整

数范围),其操作有加、减、乘、除、求余等。实际上数据类型是厂家提

供应顾客已实现了数据构造。“抽象数据类型(ADT)”指一种数学模型

及定义在该模型上一组操作。“抽象”意义在于数据类型数学抽象特性。

抽象数据类型定义仅取决于它逻辑特性,而和其在计算机内部怎样表达和

实现无关。不管其内部构造怎样变化,只要它数学特性不变就不影响它外

部使用。抽象数据矣型和数据类型实质上是一种概念。此外,抽象数据类

型范围更广,它已不再局限于机器已定义和实现数据类型,还包括顾客在

设计软件系统时自行定义数据类型。使用抽象数据类型定义软件模块含定

义、表达和实现三部分,封装在一起,对顾客透明(提供接口),而不必

理解实现细节。抽象数据类型出现使程序设计不再是“艺术”,而是向

“科学”前进了一步。

4.答复问题(每题2分)【山东工业大学1997—(8分)】

(1)在数据构造课程中,数据逻辑构造,数据寄存构造及数据运算

之间存在着怎样关系?

数据逻辑构造反应数据元素之间逻辑关系(即数据元素之间关联措施

或“邻接关系”),数据寄存构造是数据构造在计算机中表达,包括数据

元素表达及其关系表达。数据运算是对数据定义一组操作,运算是定义在

逻辑构造上,和寄存构造无关,而运算实现则是依托于寄存构造。

(2)若逻辑构造相似但寄存构造不同样,则为不同样数据构造。这

样说法对吗?举例阐明之。

逻辑构造相似但寄存不同样,可以是不同样数据构造。例如,线性表

逻辑构造属于线性构造,采用次序寄存构造为次序表,而采用链式寄存构

造称为线性链表。

(3)在给定逻辑构造及其寄存表达上可以定义不同样运算集合,从

而得到不同样数据构造。这样说法对吗?举例阐明之。

栈和队列逻辑构造相似,其寄存表达也可相似(次序寄存和链式寄

存),但由于其运算集合不同样而成为不同样数据构造。

(4)评价多种不同样数据构造原则是什么?

数据构造评价很复杂,可以考虑两个方面,一是所选数据构造与否对的、

完整刻划了问题基础特性;二是与否轻易实现(如对数据分解与否合适;

逻辑构造选择与否适合于运算功能,与否有助于运算实现;基础运算选择

与否合适。)

5.评价一种好算法,您是从哪几方面来考虑?

评价好算法有四个方面。一是算法对的性;二是算法易读性;三是算法强

健性;四是算法时空效率(运行)。

【大连海事大学1996二、3(2分)】【中山大学1998三、1

(5分)】

6.解释和比较如下各组概,念【华南师范大学一(10分)】

(1)抽象数据类型及数据类型(2)数据构造、逻辑构造、寄存构造

(3)抽象数据类型【哈尔滨工业大学一、1(3分)】

(4)算法时间复杂性【河海大学1998一、2(3分)】

(5)算法【吉林工业大学1999一、1(2分)】

(6)频度【吉林二业大学1999一、2(2分)】

(1)见上面题3(2)见上面题4(3)见上面题3

(4)算法时间复杂性是算法输入规模函数。算法输入规模或问题规模

是作为该算法输入数据所含数据元素数目,或和此数目有关其他参数。有

时考虑算法在最坏状况下时间复杂度或平均时间复杂度。

(5)算法是对特定问题求解环节描述,是指令有限序列,其中每一条

指令表达一种或多种操作。算法具有五个关键特性:有穷性、确定性、可

行性、输入和输出。

(6)频度。在分析算法时间复杂度时,有时需要估算基础操作原操

作,它是实行次数最多一种操作,该操作反复实行次数称为频度。

7.根据数据元素之间逻辑关系,一般有哪几类基础数据构造?

集合、线性构造、树形构造、图形或网状构造。

【北京科技大学1998—、1】【同济大学1998】

8.对于一种数据构造,一般包括哪三个方面讨论?【北京科技大学1999

一、1(2分)】

逻辑构造、寄存构造、操作(运算)。

9.当你为处理某一问题而选择数据构造时,应从哪些方面考虑?【西安

电子北京科技大学】

一般考虑算法所需要寄存空间量和算法所需要时间量。后者又包括到四

方面:程序运行时所需输入数据总量,对源程序进行编译所需时间,计算

机实行每条指令所需时间和程序中指令反复实行次数。

10.若将数据构造定义为一种二元组(D,R),阐明符号D,R应分别表

达什么?

【北京科技大学一、1(2分)】

D是数据元素有限集合,S是D上数据元索之间关系有限集合。

11.数据构造和数据类型有什么辨别?【哈尔滨工业大学三、1(3

分)】

“数据构造”这一术语有两种含义,一是作为一门课程名称:二是作为一

种科学概念。作为科学概念,目前尚无公认定义,一般认为,讨论数据构

造要包括三个方面,一是数据逻辑构造,二是数据寄存构造,三是对数据

进行操作(运算)。而数据类型是值集合和操作集合,可以看作是已实现

了数据构造,后者是前者一种简化状况。

12.数据寄存构造由哪四种基础寄存措施实现?【山东科技大学

1(4分)】

12.见上面题2。

13.若有100个学生,每个学生有学号,姓名,平均成绩,采用什么样数

据构造最以便,写出这些构造?

【山东师范大学1996二、2(2分)】

将学号、姓名、平均成绩当作一种记录(元素,含三个数据项),将

100个这样记录存于数组中。因一般无增删操作,故宜采用次序寄存。

typedefstruct

{intnum;//学号

charname[8];〃姓名

floatscore;/平均成绩

Inode;

nodestudent[100];

14.运算是数据构造一种关键方面。试举一例,阐明两个数据构造逻辑构

造和寄存措施完全相似,只是对于运算定义不同样。因此两个构造具有明

显不同样特性,是两个不同样构造。

【北京大学1998—、1(5分)】

见上面题4(3)o

15.在编制管理通讯录程序时,什么样数据构造合适?为何?【长沙铁道

学院1998四、3(6分)】

应从两方面进行讨论:如通讯录较少变动(如都市私人号码),

关键用于查询,以次序寄存较以便,既能次序查找也可随机查找;若通讯

录常常有增删操作,用链式寄存构造较为合适,将每个人状况作为一种元

素(即一种结点寄存一种人),设姓名作关键字,链表安排成有序表,这

样可提高查询速度。

16.试举一例,阐明对相似逻辑构造,同一种运算在不同样寄存措施下实

现,其运算效率不同样。

【北京理工大学三、1(4.5分)】

线性表中插入、删除操作,在次序寄存措施下平均移动近二分之一元

素,时间复杂度为0(n);而在链式寄存措施下,插入和删除时间复杂

度所有是0(1)O

17.有实现同一功能两个算法A1和A2,其中A1时间复杂度为

TI=0(7),A2时间复杂度为T2=0(胡),仅就时间复杂度而言,请详细分析

这两个算法哪一种好。【北京航空航天大学二(10分)】

对算法A1和A2时间复杂度T1和T2取对数,得Mog?和2log\显然,

算法A2好于A1o

18.设计一数据构造,用来表达某一银行储户基础信息:账号、姓名、

开户年月日、储蓄类型、存入累加数、利息、帐面总数。【浙江大学

1994一、3(5分)】

structnode

{intyear,month,day;];

typedefstruct

{intnum;//帐号

charname[8];//姓名

structnodedate;//开户年月日

inttag;//储蓄类型,如:0-零存,1-一年定期……

floatput;//存入累加数;

floatinterest;//利息

floattotaI;//帐面总数

}count;

19.写出下面算法占带标号语句频度。

TYPEar=ARRAY[1..n]OFdatatype;

PROCEDUREperm(a:ar;k,n:integer);

VARx:datatype;i:integer;

BEGIN

(1)IFk=n

THENBEGIN

(2)FORi:=1TOnDO

(3)write(a[i]);

writeIn;

END

ELSEBEGIN

(4)FORi:=kTOnDO

(5)a[i]:=a[i]+i*i;

(6)perm(a,k+1,n);

END;

END;

设k初值等于1。

【北京邮电大学1997二(10分)】

(1)n(2)n+1(3)n(4)(n+4)(n-1)/2(5)(n+2)(n-1)/2

(6)n-1

这是一种递归调用,因k初值为1,由语句(6)知,每次调用k漕

1,故第(1)语句实行n次。(2)是FOR循环语句,在满足(1)条件下实

行,该语句进入循环体(3)n次,加上最终一次鉴定出界,故实行了n-1

次。(4)也是循环语句,当k=1时鉴定n+1次(进入循环体(5)n次),

k=2时鉴定n次,最终一次k=n-1时鉴定3次,故实行次数是(n+1)

+n+-+3=(n+4)(n-1)/2次。语句⑸是⑷循环体,每次比⑷少一次鉴

定,故实行次数是n+(n-1)+…+2=(n+2)(n-1)/2次。注意分析时,不要把

⑵分析成n次,更不是1次。

20.分析下面程序段中循环语句实行次数。

i:=0;s:=0;n:=100;

REPEAT

i:=i+1;

s:=s+10*i;

UNTILN0T((i<n)AND(s<n));

【北京邮电大学1998四、1(5分)】

4(这时i=4,s=100)REPEAT语句先实行循环体,后鉴定条件,

直到条件为真时退出循环。

21.下列算法对一n位二进制数加1,假如无溢出,该算法最坏时间复杂

性是什么?并分析它平均时间复杂性。

TYPEnum=ARRAY[1..n]of[0..1]:

PROCEDUREInc(VARa:num);

VARi:integer;

BEGINi:=n;

WHILEA[i]=1DO

BEGINA[i]:=0;i:=i-1;END:

END:

A[i]:=1;

ENDInc;

【东南大学1998三(8分)1994二(15分)】

算法在最佳状况下,即二进制数最终一位为零时,只作一次鉴定,未

实行循环体,赋值语句A[i]实行了一次;最坏状况出目前二进制数各&

均为1(最高位为零,因题目假设无溢出),这时循环体实行了n-1次,

时间复杂度是0(n),循环体平均实行n/2次,时间复杂度仍是0(n)。

22.阅读下列算法,指出算法A功能和时间复杂性

PROCEDUREA(h,g:pointer);

(h,g分别为单循环链表(singleIinkedcircularlist)中

两个结点指针)

PROCEDUREB(s,q:pointer);

VARp:pointer;

BEGIN

P:=s;

WHILEp".nextOqDOp:=p".next;

p".next:=s;

END;(ofB)

BEGIN

B(h,g);B(g,h);

END;(ofA)

【东南大学1999二(10分)】

该算法功能是将原单循环链表分解成两个单循环链表:其一包括结点

h到结点g前驱结点;另一种包括结点g到结点h前驱结点。时间复杂度

是0(n)。

23.调用下列C函数千(n)或PASACAL函数f(n)答复下列问题:

(1)试指出f(n)值大小,并写出f(n)值推导过程;

(2)假定n=5,试指出f(5)值大小和实行f(5)时榆出成果o

C函数:intf(intn)

{inti,j,k,sum=0;

for(i=l;i<n+1;i++)

[for(j=n;j>i-1;j一)

for(k=1;k<j+1;k++)

sum++;

printf("sum=%d\n",sum);

)

return(sum);

)【华中理工大学六(10分)】

第一层FOR循环鉴定n+1次,往下实行n次,第二层FOR实行次数为

(n+(n-1)+(n-2)+…+1),第三层循环体受第一层循环和第二层循环控制,

其实行次数如下表:

i=123…n

j=nnnnn

j=n-1n-1n-1n-1…

••••・♦••••••

j=333

j=222

j=11

实行次数为(1+2+3+n)+(2+3+—+n)+—+n=n*n(n+1)/2-n(r|2-1)/6。在n=5

时,f(5)=55,实行过程中,输出成果为:

sum=15,sum=29,sum=41,sum=50,sum=55(每个sum=占一行,为节省篇

温馨提示

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

评论

0/150

提交评论