计算机数据结构今年考研真题和答案解析.docx

上传人:b****1 文档编号:12793728 上传时间:2023-04-22 格式:DOCX 页数:32 大小:305.66KB
下载 相关 举报
计算机数据结构今年考研真题和答案解析.docx_第1页
第1页 / 共32页
计算机数据结构今年考研真题和答案解析.docx_第2页
第2页 / 共32页
计算机数据结构今年考研真题和答案解析.docx_第3页
第3页 / 共32页
计算机数据结构今年考研真题和答案解析.docx_第4页
第4页 / 共32页
计算机数据结构今年考研真题和答案解析.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

计算机数据结构今年考研真题和答案解析.docx

《计算机数据结构今年考研真题和答案解析.docx》由会员分享,可在线阅读,更多相关《计算机数据结构今年考研真题和答案解析.docx(32页珍藏版)》请在冰豆网上搜索。

计算机数据结构今年考研真题和答案解析.docx

计算机数据结构今年考研真题和答案解析

2009

1.为解决计算机与打印机之间速度不匹配的问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。

该缓冲区的逻辑结构应该是

A.栈B.队列C.树D.图

2.设栈S和队列Q的初始状态均为空,元素abcdefg依次进入栈S。

若每个元素出栈后立即进入队列Q,且7个元素出队的顺序是bdcfeag,则栈S的容量至少是A.1B.2C.3D.4

3.给定二叉树图所示。

设N代表二叉树的根,L代表根结点的左子树,R代表根结点的右子树。

若遍历后的结点序列为3,1,7,5,6,2,4,则其遍历方式是A.LRNB.NRLC.RLND.RNL

4.下列二叉排序树中,满足平衡二叉树定义的是

5.已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则完全二叉树的结点个数最多是

A.39B.52C.111D.119

6.将森林转换为对应的二叉树,若在二叉树中,结点u是结点v的父结点的父结点,则在原来的森林中,u和v可能具有的关系是I.父子关系II.兄弟关系III.u的父结点与v的父结点是兄弟关系

A.只有IIB.I和IIC.I和IIID.I、II和III

7.下列关于无向连通图特性的叙述中,正确的是

I.所有顶点的度之和为偶数II.边数大于顶点个数减1III.至少有一个顶点的度为1

A.只有IB.只有IIC.I和IID.I和III

8.下列叙述中,不符合m阶B树定义要求的是

A.根节点最多有m棵子树B.所有叶结点都在同一层上

C.各结点内关键字均升序或降序排列D.叶结点之间通过指针链接

9.已知关键序列5,8,12,19,28,20,15,22是小根堆(最小堆),插入关键字3,调整后得到的小根堆是

A.3,5,12,8,28,20,15,22,19

B.3,5,12,19,20,15,22,8,28

C.3,8,12,5,20,15,22,28,19

D.3,12,5,8,28,20,15,22,19

10.若数据元素序列11,12,13,7,8,9,23,4,5是采用下列排序方法之一得到的第二趟排序后的结果,则该排序算法只能是

A.起泡排序B.插入排序C.选择排序D.二路归并排序

41.(10分)带权图(权值非负,表示边连接的两顶点间的距离)的最短路径问题是找出从初始顶点到目标顶点之间的一条最短路径。

假定从初始顶点到目标顶点之间存在路径,现有一种解决该问题的方法:

①设最短路径初始时仅包含初始顶点,令当前顶点u为初始顶点;

②选择离u最近且尚未在最短路径中的一个顶点v,加入到最短路径中,修改当前顶点u=v;

③重复步骤②,直到u是目标顶点时为止。

请问上述方法能否求得最短路径?

若该方法可行,请证明之;否则,请举例说明。

42.(15分)已知一个带有表头结点的单链表,结点结构为

data

link

 

假设该链表只给出了头指针list。

在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。

若查找成功,算法输出该结点的data值,并返回1;否则,只返回0。

要求:

(1)描述算法的基本设计思想

(2)描述算法的详细实现步骤

(3)根据设计思想和实现步骤,采用程序设计语言描述算法(使用C或C++或JAVA语言实现),关键之处请给出简要注释。

2010

1、若元素a,b,c,d,e,f依次进栈,允许进栈、退栈操作交替进行。

但不允许连续三次进行退栈工作,则不可能得到的出栈序列是()

A:

dcebfaB:

cbdaefC:

dbcaefD:

afedcb

2、某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作,则不可能得到的顺序是()

A:

bacdeB:

dbaceC:

dbcaeD:

ecbad

3、下列线索二叉树中(用虚线表示线索),符合后序线索树定义的是()

4、在下列所示的平衡二叉树中插入关键字48后得到一棵新平衡二叉树,在新平衡二叉树中,关键字37所在结点的左、右子结点中保存的关键字分别是()

A:

13,48B:

24,48C:

24,53D:

24,90

5、在一棵度为4的树T中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T的叶节点个数是()

A:

41B:

82C:

113D:

122

6、对n(n大于等于2)个权值均不相同的字符构成哈夫曼树,关于该树的叙述中,错误的是()

A:

该树一定是一棵完全二叉树

B:

树中一定没有度为1的结点

C:

树中两个权值最小的结点一定是兄弟结点

D:

树中任一非叶结点的权值一定不小于下一任一结点的权值

7、若无向图G-(V.E)中含7个顶点,则保证图G在任何情况下都是连通的,则需要的边数最少是()

A:

6B:

15C:

16D:

21

8、对下图进行拓补排序,可以得到不同的拓补序列的个数是()

A:

4B:

3C:

2D:

1

9、已知一个长度为16的顺序表L,其元素按关键字有序排列,若采用折半查找法查找一个不存在的元素,则比较次数最多是()

A:

4B:

5C:

6D:

7

10、采用递归方式对顺序表进行快速排序,下列关于递归次数的叙述中,正确的是()

A:

递归次数与初始数据的排列次序无关

B:

每次划分后,先处理较长的分区可以减少递归次数

C:

每次划分后,先处理较短的分区可以减少递归次数

D:

递归次数与每次划分后得到的分区处理顺序无关

11、对一组数据(2,12,16,88,5,10)进行排序,若前三趟排序结果如下()

第一趟:

2,12,16,5,10,88

第二趟:

2,12,5,10,16,88

第三趟:

2,5,10,12,16,88

则采用的排序方法可能是:

A:

起泡排序B:

希尔排序C:

归并排序D:

基数排序

41.(10分)将关键字序列(7、8、11、18、9、14)散列存储到散列列表中,散列表的存储空间是一个下标从0开始的一个一维数组散列函数维:

H(key)=(key×3)MODT,处理冲突采用线性探测再散列法,要求装填(载)因子为0.7

问题:

(1)请画出所构造的散列表;

(2)分别计算等概率情况下,查找成功和查找不成功的平均查找长度。

42.(13分)设将n(n,1)个整数存放到一维数组R中,试设计一个在时间和空间两方面尽可能有效的算法,将R中保有的序列循环左移P(0﹤P﹤n)个位置,即将R中的数据由(X0X1……Xn-1)变换为(XpXp+1……Xn-1X0X1……Xp-1)要求:

(1)给出算法的基本设计思想。

(2)根据设计思想,采用C或C++或JAVA语言表述算法关键之处给出注释。

(3)说明你所设计算法的时间复杂度和空间复杂度

2011

1.设n是描述问题规模的非负整数,下面程序片段的时间复杂度是

  x=2;

  while(x

  x=2*x;

  A.O(log2n)B.O(n)C.O(nlog2n)D.O(n2)

2.元素a,b,c,d,e依次进入初始为空的栈中,若元素进栈后可停留、可出栈,直到所有元素都出栈,则在所有可能的出栈序列中,以元素d开头的序列个数是A.3B.4C.5D.6

3.已知循环队列存储在一维数组A[0..n-1]中,且队列非空时front和rear分别指向队头元素和队尾元素。

若初始时队列为空,且要求第1个进入队列的元素存储在A[0]处,则初始时front和rear的值分别是

A.0,0B.0,n-1C.n-1,0D.n-1,n-1

4.若一棵完全二叉树有768个结点,则该二叉树中叶结点的个数是

A.257B.258C.384D.385

5.若一棵二叉树的前序遍历序列和后序遍历序列分别为1,2,3,4和4,3,2,1,则该二叉树的中序遍历序列不会是

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

6.已知一棵有2011个结点的树,其叶结点个数为116,该树对应的二叉树中无右孩子的结点个数是

A.115B.116C.1895D.1896

7.对于下列关键字序列,不可能构成某二叉排序树中一条查找路径的序列是

A.95,22,91,24,94,71B.92,20,91,34,88,35

C.21,89,77,29,36,38D.12,25,71,68,33,34

8.下列关于图的叙述中,正确的是

I.回路是简单路径

II.存储稀疏图,用邻接矩阵比邻接表更省空间

III.若有向图中存在拓扑序列,则该图不存在回路

A.仅IIB.仅I、IIC.仅IIID.仅I、III

9.为提高散列(Hash)表的查找效率,可以采取的正确措施是

I.增大装填(载)因子

II.设计冲突(碰撞)少的散列函数

III.处理冲突(碰撞)时避免产生聚集(堆积)现象

A.仅IB.仅IIC.仅I、IID.仅II、III

10.为实现快速排序算法,待排序序列宜采用的存储方式是

A.顺序存储B.散列存储C.链式存储D.索引存储

11.已知序列25,13,10,12,9是大根堆,在序列尾部插入新元素18,将其再调整为大根堆,调整过程中元素之间进行的比较次数是

A.1B.2C.4D.5

41.(8分)已知有6个顶点(顶点编号为0~5)的有向带权图G,其邻接矩阵A为上三角矩阵,按行为主序(行优先)保存在如下的一维数组中。

要求:

(1)写出图G的邻接矩阵A。

(2)画出有向带权图G。

(3)求图G的关键路径,并计算该关键路径的长度。

42.(15分)一个长度为L(L≥1)的升序序列S,处在第éL/2ù个位置的数称为S的中位数。

例如,若序列S1=(11,13,15,17,19),则S1的中位数是15。

两个序列的中位数是含它们所有元素的升序序列的中位数。

例如,若S2=(2,4,6,8,20),则S1和S2的中位数是11。

现有两个等长升序序列A和B,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列A和B的中位数。

要求:

(1)给出算法的基本设计思想。

(2)根据设计思想,采用C或C++或JAVA语言描述算法,关键之处给出注释。

(3)说明你所设计算法的时间复杂度和空间复杂度。

2012

1、求整数n(n≥0)阶乘的算法如下,其时间复杂度是()

intfact(intn)

{if(n<=1)return1;

returnn*fact(n-1);

}

A.O(log2n)B.O(n)C.(nlog2n)D.O(n2)

2、已知操作符包括‘+’、‘-’、‘*’、‘/’、‘(’和‘)’。

将中缀表达式a+b-a*((c+d)/e-f)+g转换为等价的后缀表达式ab+acd+e/f-**-g+时,用栈来存放暂时还不能确定运算次序的操作符,若栈初始时为空,则转换过程中同时保存栈中的操作符的最大个数是()

A.5B.7C.8D.11

3、若一颗二叉树的前序遍历序列为a,e,b,d,c,后续遍历序列为b,c,d,e,a,则根节点的孩子节点()

A.只有eB.有e、bC.有e、cD.无法确定

4、若平衡二叉树的高度为6,且所有非叶节点的平衡因子均为1,则该平衡二叉树的节点总数为()

A.10B.20C.32D.33

5、对有n个节点、e条边且使用邻接表存储的有向图进行广度优先遍历,其算法时间复杂度()

A.O(n)B.O(e)C.O(n+e)D.O(n*e)

6、若用邻接矩阵存储有向图,矩阵中主对角线以下的元素均为零,则关于该图拓扑序列的结构是()

A.存在,且唯一B.存在,且不唯一

C.存在,可能不唯一D.无法确定是否存在

7、如下有向带权图,若采用迪杰斯特拉(Dijkstra)算法求源点a到其他各顶点的最短路径,得到的第一条最短路径的目标顶点是b,第二条最短路径的目标顶点是c,后续得到的其余各最短路径的目标顶点依次是()

A.d,e,fB.e,d,fC.f,d,eD.f,e,d

8、下列关于最小生成树的说法中,正确的是()

Ⅰ、最小生成树的代价唯一

Ⅱ、所有权值最小的边一定会出现在所有的最小生成树中

Ⅲ、使用普里姆(Prim)算法从不同顶点开始得到的最小生成树一定相同

Ⅳ、使用普里姆算法和克鲁斯卡尔(Kruskal)算法得到的最小生成树总不相同

A.仅ⅠB.仅ⅡC.仅Ⅰ、ⅢD.仅Ⅱ、Ⅳ

9、已知一棵3阶B-树,如下图所示。

删除关键字78得到一棵新B-树,其最右叶结点中的关键字是()

A.60B.60,62C.62,65D.65

10、在内部排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一趟排序。

下列排序方法中,每一趟排序结束都至少能够确定一个元素最终位置的方法是()

Ⅰ.简单选择排序Ⅱ.希尔排序Ⅲ.快速排序

Ⅳ.堆排序Ⅴ.二路归并排序

A.仅Ⅰ、Ⅲ、ⅣB.仅Ⅰ、Ⅲ、Ⅴ

C.仅Ⅱ、Ⅲ、ⅣD.仅Ⅲ、Ⅳ、Ⅴ

11.对一待排序序列分别进行折半插入排序和直接插入排序,两者之间可能的不同之处是()

A.排序的总趟数B.元素的移动次数

C.使用辅助空间的数量D.元素之间的比较次数

二、问答题。

41、(10分)设有6个有序表A、B、C、D、E、F,分别含有10、35、40、50、60和200个数据元素,各表中元素按升序排列。

要求通过5次两两合并,将6个表最终合并成1个升序表,并在最坏情况下比较的总次数达到最小。

请回答下列问题。

(1)给出完整的合并过程,并求出最坏情况下比较的总次数。

(2)根据你的合并过程,描述N(N≥2)个不等长升序表的合并策略,并说明理由。

42、(13分)假定采用带头结点的单链表保存单词,当两个单词有相同的后时缀,则可共享相同的后缀存储空间,例如,“loaging”和“being”,如下图所示。

设str1和str2分别指向两个单词所在单链表的头结点,链表结点结构为(data,next),请设计一个时间上尽可能高效的算法,找出由str1和str2所指向两个链表共同后缀的起始位置(如图中字符i所在结点的位置p)。

要求:

(1)给出算法的基本设计思想。

(2)根据设计思想,采用C或C++或java语言描述算法关键之处给出注释。

(3)说明你所设计算法的时复杂度。

2013

1.已知两个长度分别为m和n的升序链表,若将它们合并为一个长度为m+n的降序链表,则最坏情况下的时间复杂度是

A.O(n)B.O(m*n)C.O(min(m,n))D.O(max(m,n))

2.一个栈的入栈序列为1,2,3,,n,其出栈序列是p1,p2,p3,pn。

若p2=3,则p3可能取值的个数是:

A.n-3B.n-2C.n-1D.无法确定

3.若将关键字1,2,3,4,5,6,7依次插入到初始为空的平衡二叉树T中,则T中平衡因子为0的分支结点的个数是

A.0B.1C.2D.3

4.已知三叉树T中6个叶结点的权分别是2,3,4,5,6,7,T的带权(外部)路径长度最小是

A.27B.46C.54D.56

5.若X是后序线索二叉树中的叶结点,且X存在左兄弟结点Y,则X的右线索指向的是

A.X的父结点B.以Y为根的子树的最左下结点

C.X的左兄弟结点YD.以Y为根的子树的最右下结点

6.在任意一棵非空二叉排序树T1中,删除某结点v之后形成二叉排序树T2,再将v插入T2形成二叉排序树T3。

下列关于T1与T3的叙述中,正确的是

I.若v是T1的叶结点,则T1与T3不同

II.若v是T1的叶结点,则T1与T3相同

III.若v不是T1的叶结点,则T1与T3不同

IV.若v不是T1的叶结点,则T1与T3相同

A.仅I、IIIB.仅I、IVC.仅II、IIID.仅II、IV

7.设图的邻接矩阵A如下所示。

各顶点的度依次是

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

8.若对如下无向图进行遍历,则下列选项中,不是广度优先遍历序列的是

A.h,c,a,b,d,e,g,fB.e,a,f,g,b,h,c,d

C.d,b,c,a,h,e,f,gD.a,b,c,d,h,e,f,g

9、下列的AOE网表示一项包含8个活动的工程。

通过同时加快若干活动的进度可以缩短整个工程的工期。

下列选项中,加快其进度就可以缩短整个工程的工期的是:

Ac和eBd和eCf和dDf和h

10、在一棵高为2的5阶B树中,所含关键字的个数最少是

A5B7C8D14

A= ( 0,5,5,3,5,7,5,5 ),侧5为主元素;又如A= ( 0,5,5,3,5,1,5,7 ),则A中没有主元素。

假设A中的n个元素保存在一个一维数组中,请计一个尽可能高效的算法,找出A的主元素。

若存在主元素,则输出该元素;否则输出-1。

要求:

     

(1)给出算法的基本设计思想。

 

(2)根据设计思想,采用C或C++或Java语言描述算法,关键之处给出释。

   

(3)说明你所设计算法的时间复杂度和空间复杂度。

42.(10分)设包含4个数据元素的集合S={ "do","for"," repeat"," while"},各元素查找概率依次为:

p1=0.35,p2 = 0.15,p3=0. 15,p4=0.35。

将S保存在一个长度为4的顺序表中,采用折半查找法,查找成功时的平均查找长度为2.2。

请回答:

(1)若采用顺序存储结构保存S,且要求平均查找长度更短,则元素应如何排列?

应使用何种查找方法?

查找成功时的平均查找长度是多少?

(2)若采用链式存储结构保存S,且要求平均查找长度更短,则元素应如何排列?

应使用何种查找方法?

查找成功时的平均查找长度是多少?

2014

1.下列程常段的时间复杂度是

count=0;

for(k=1;k<=n;k*=2)

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

count++;

A.O(log2n)B.O(n)C.O(nlog2n)D.O(n2)

2.假设栈初始为空,将中缀表达式

转换为等价后缀表达式的过程中,当扫描到f时,栈中的元素依次是

A.

B.

C.

D.

3.循环两列放在一维数组A[0…M-1]中,end1指向队头元素,end2指向队尾元素的后一个位置。

假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。

初始时为空,下列判断队空和队满的条件中,正确的是

A.队空:

end1==end2;队满:

end1==(end2+1)modM

B.队空:

end1==end2;队满:

end2==(end1+1)mod(M-1)

C.队空:

end2==(end1+1)modM;队满:

end1==(end2+1)modM

D.队空:

end1==(end2+1)modM;队满:

end2==(end1+1)mod(M-1)

4.若对如下的二叉树进行中序线索化,则结点x的左、右线索指向的结点分别是

A.e,cB.e,aC.d,cD.b,a

c

5.将森林F转换为对应的二叉树T,F中叶结点的个数等于

A.T中叶结点的个数B.T中度为1的结点个数

C.T中左孩子指针为空的结点个数D.T中右孩子指针为空的结点个数

6.5个字符有如下4种编码方案,不是前缀编码的是

A.01,0000,0001,001,1B.011,000,001,010,1

C.000,001,010,011,100D.000,001,010,011,100

7.对如下所示的有向图进行拓扑排序,得到的拓扑序列可能是

A.3,1,2,4,5,6B.3,1,2,4,6,5C.3,1,4,2,5,6D.3,1,4,2,6,5

3

8.用哈希(散列)方法处理冲突(碰撞)时可能出现堆积(聚集)现象,下列选项中,会受堆积现象直接影响的是

A.存储效率B.数列函数

C.装填(装载)因子D.平均查找长度

9.在一棵具有15个关键字的4阶B树中,含关键字的结点数最多是

A.5B.6C.10D.15

10.用希尔排序方法对一个数据序列进行排序时,若第1趟排序结果为9,1,4,13,7,8,20,23,15,则该趟排序采用的增量(间隔)可能是

A.2B.3C.4D.5

11.下列选项中,不可能是快速排序第2趟排序结果的是

A.2,3,5,4,6,7,9B.2,7,5,6,4,3,9

C.3,2,5,4,7,6,9D.4,2,3,5,7,6,9

41.(13分)二叉树的带权路径长度(WPL)是二叉树中所有叶结点的带权路径长度之和,给定一棵二叉树T,采用二叉链表存储,节点结构为:

left

weight

right

 

其中叶节点的weight域保存该结点的非负权值。

设root为指向T的根节点的指针,设计求T的WPL的算法。

要求:

(1)给出算法的基本设计思想;

(2)使用C或C++语言,给出二叉树结点的数据类型定义;

(3)根据设计思想,采用C或C++语言描述算法,关键之处给出注释。

2015

1.已知程序如下:

 

int s(int n) { return (n<=0) ?

 0 :

 s(n-1) +n; } 

void main() { cout<< s

(1); } 

程序运行时使用栈来保存调用过程的信息,自栈底到栈顶保存的信息一次对应的是

 A.main()->S

(1)->S(0)  B.S(0)->S

(1)->main() 

C.main()->S(0)->S

(1)  D.S

(1)->S(0)->main() 

2.先序序列为a,b,c,d的不同二叉树的个数是 

A.13 B.14 C.15 D.16

3.下列选项给出的是从根分别到达两个叶节点路径上的权值序列,能属于同一棵哈夫曼树的是 

A.24,10,5和 24,10,7  B.24,10,5和24,12,7 

C.24,10,10和 24,14,11 D.24,10,5和 24,14,6 

4.现在有一颗无重复关键字的平衡二叉树(AVL树),对其进行中序遍历可得到一个降序序列。

下列关于该平衡二叉树的叙述中,正确的是

A.根节点的度一定为2 B.树中最小元素一定是叶节点

C.最后插入的元素一定是叶节点D.树中最大元素一定是无左子树

5.设有向图G=(V,E),顶点集V={V0,V1,V2,V3},边集E={,,

>,},若从顶点V0 开始对图进行深度优先遍历,则可能得到的不同遍历序列个数是

A.2 B.3   C.4   D.5 

6.求下面带权图的最小(代价)生成树时,可能是克鲁斯卡(kruskal)算法第二次选中但不是普里姆(Prim)算法(从V4开始)第2次选中的边是

 A.(V1,V3)   B.(V1,V4)   

C.(V2,V3)   D.(V3,V4) 

7.下列选项中,不能构成折半查找中关键字比较序列的是 

A.500,200,450,180  B.500

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 初中作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1