当前位置:问答库>考研试题

2018年中北大学软件学院821数据结构与算法之数据结构考研基础五套测试题

  摘要

一、单项选择题

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

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

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

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

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

【答案】D

【解析】快速排序是递归的, 递归过程可用一棵二叉树给出, 递归调用层次数与二叉树的深度一致。例如:待排序列{48, 62, 35, 77, 55, 14, 35, 98) , 采用快速排序方法, 其对应递归调用过程的二叉树如下图所示。

在最坏情况下, 若初始序列按关键码有序或基本有序时, 快速排序反而蜕化为冒泡排序。即其对应递归调用过程的二叉树是一棵单支树。因此快速排序的递归次数与初始数据的排列次序有关。但快速排序的递归次数与每次划分后得到的分区处理顺序无关, 即先处理较长的分区或先处理较短的分区都不影响递归次数。

2. 串的长度是指( )。

A. 串中所含不同字母的个数

B. 串中所含字符的个数

C. 串中所含不同字符的个数

D. 串中所含非空格字符的个数

【答案】B

【解析】串中字符的数目n 称为字符的长度,不必考虑其中单个字符是否相等。

3. 对于循环队列( )。

A. 无法判断队列是否为空

B. 无法判断队列是否为满

C. 队列不可能满

D. 以上说法都不是

【答案】D

【解析】循环队列也会出现队列满的情况,并且循环队列也可以判断是否为空或满。至少可以通过两种方法进行判断:①另设一个布尔变量来区别队列是空还是满;②队满时,

(rear+1)

font 。

4. 给定二叉树如下图所示. 设N 代表二叉树的根,L 代表根结点的左子树,R 代表根结点的右子树. 若遍历后的结点序列为3,1,7,5,6,2,4,则其遍历方式是( ).

A.LRN

B.NRL

C.RLN

D.RNL

【答案】D

【解析】对“二叉树”而言,一般有三条搜索路径:

①先上后下的按层次遍历;

②先左(子树) 后右(子树) 的遍历;

③先右(子树) 后左(子树) 的遍历.

其中第1种搜索路径方式就是常见的层次遍历,第2种搜索路径方式包括常见的先序遍历NLR 、中序遍历LNR 、后序遍历LRN ,第3种搜索路径方式则是不常使用的NRL 、RNL 、RLN. 本题考查的是第3种搜索路径方式的一种情况. 根据遍历的序列以及树的结构图,可以分析出该遍历的顺序是先右子树再跟结点最后左子树,故答案为D.

5. 已知一算术表达式的中缀表达式为a ﹣(b+c/d)*e,其后缀形式为( )。 A.

B.

C.

D.

【答案】D

【解析】后缀表达式:在程序语言中,运算符位于两个操作数后面的表达式。

6. 下列四个序列中,哪一个是堆( )?

A.75,65,30,15,25,45,20,10

B.75,65,45,10,30,25,20,15

C.75,45,65,30,15,25,20,10

D.75,45,65,10,25,30,20,15

【答案】C

【解析】堆的定义:

n 个关键字序列

①②且且 称为堆,当且仅当该序列满足如下性质(简称为堆性质) : 小根堆:满足第①种情况的堆;

大根堆:满足第②种情况的堆。

根据堆定义即可得出答案。

7. 在采用中断方式控制打印输出的情况下, CPU 和打印控制接口中的

息不可能是( )。

A. 打印字符

B. 主存地址

C. 设备状态

D. 控制命令

【答案】B 【解析】接口的功能包括:①选址功能; ②传送命令功能; ③传送数据功能; ④反映设备工作状态功能。A 项为数据, C 项为设备状态, D 项为命令。B 项, 主存地址在中断方式控制下是不需要的, 因此, 它不可能是CPU 和打印控制接口中的端口之间交换的信息。

8. 基于比较方法的n 个数据的内部排序。 最坏情况下的时间复杂度能达到的最好下界是( )。

A. B.

C. O (n) D.

【答案】A

【解析】在内部排序中,最坏情况下的时间复杂度为。

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

A.X 的父结点

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

C.X 的左兄弟结点Y

D. 以Y 为根的子树的最右下结点

端口之间交换的信