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

2018年北京市培养单位电子电气与通信工程学院863计算机学科综合(专业)之数据结构考研核心题库

  摘要

一、填空题

1. 阅读下列程序说明和程序,填充程序中的_____。

【程序说明】本程序完成将二叉树中左、右孩子交换的操作。交换的结果如下所示。

本程序采用非递归的方法,设立一个堆栈stack 存放还没有转换过的结点,它的栈顶指针为tp 。交换左、右子树的算法为:

(1)把根结点放入堆栈。

(2)当堆栈不空时,取出栈顶元素,交换它的左、右子树,并把它的左、右子树分别入栈。

(3)重复(2)直到堆栈为空时为止。

【答案】

【解析】本题主要使用堆栈完成了二叉树左右子树交换的操作。首先根结点进栈,然后判断栈是否为空,如果不为空,则取栈顶元素,交换取出结点的左右指针。并将左右指针分别进栈,重复这一操作。完成二叉树左右孩子的交换。

2. 高度为4的3阶B-树中,最多有_____个关键字。

【答案】26

【解析】第4层是叶结点,1层至3层每个结点两个关键字,每个节点的关键字达到最大时,关键字最多。

3. —棵深度为k 的平衡二叉树, 其每个非终端结点的平衡因子均为0,则该树共有_____个结点。

【答案】

树。故结点个数为 。

【解析】每个非终端结点都是0表示该平衡二叉树没有高度落差。也就是说它是一棵满二叉

4. 在基于关键字比较且时间为

【答案】归并;堆 _ 的排序中,若要求排序是稳定的,则可选用_____排序;若要求就地排序(及辅助空间为O(1)),则可选用_____排序。

5. 一个算法具有5个特性: _____、_____、_____、有零个或多个输入、有一个或多个输出。

【答案】有穷性;确定性;可行性

6. 假定有k 个关键字互为同义词,若用线性探测再哈希法把这k 个关键字存入哈希表中,至少要进行_____次探测。 【答案】

【解析】当该关键字发生冲突时,用线性探测不会遇到别的关键字冲突,这个时候需要探测的次数最小。总次数为。

7. 中缀式(c-d)对应的前缀式为_____,若a=l,b=2, c=3, d=4, 则后缀式

运算结果为_____。 【答案】

【解析】中缀式相当于中序遍历,前缀式相当于前序遍历,后缀式相当于后序遍历。

8. 深度为H 的完全二叉树至少有_____个结点:至多有_____个结点; H 和结点总数N 之间的关系是_____。 【答案】

9. N 个顶点的连通图用邻接矩阵表示时,该矩阵至少有_____个非零元素。 【答案】

【解析】所谓连通图一定指的是无向图,有向图会称作强连通图。连接N 个顶点,至少需要N -1条边就可以了。由于无向图的每一条边同时关联了两个顶点。因此用邻接矩阵表示时,该矩阵至少有2(N-1) 个非零元素。

10.一个字符串中_____称为该串的子串。

【答案】任意个连续的字符组成的子序列

二、判断题

11.在一个设有头指针和尾指针的单链表中,执行删除该单链表中最后一个元素的操作与链表的长度无关。( )

【答案】 ×

【解析】必须从头指针开始,查找到尾指针所指结点的前驱结点的指针。

12.数组是同类型值的集合。( )

【答案】 ×

【解析】数组是具有相同性质的数据元素的集合,数据元素不仅有值,还有下标。因此,可以说数组是元素值和下标构成的偶对的有穷集合。

13.设尾指针的循环链表表示队列,则入队和出队算法的时间复杂度均为O(1)( )。

【答案】 √

【解析】入队和出队操作分别在队尾和队头进行,设有尾指针的循环链表对头和尾元素的操作的时间复杂度是O(1)。

14.若一个广义表的表头为空表,则此广义表亦为空表。( )

【答案】 ×

【解析】广义表的表头就是广义表的第一个元素。只有非空广义表才能取表头。

15.广义表(((a,b ,C) ,d ,e ,f)) 的长度是4。( )]

【答案】 ×

【解析】长度为1。因为只含一个元素即子表(((a,b ,C) ,d ,e ,f)) 。

16.倒排文件的目的是为了多关键字查找。( )

【答案】√

【解析】多关键字文件的特点是,在对文件进行检索操作时,不仅对主关键字进行简单询问,还经常需要对次关键字进行其它类型的询问检索。常见的多关键字文件为:多重表文件和倒排文件。

17.强连通分量是无向图的极大强连通子图。( )

【答案】×

【解析】强连通分量是对有向图而言的,一般在无向图中讨论连通性。

18.若中序遍历平衡的二叉排序树,可得到排好序的关键码序列。( )

【答案】√

【解析】二叉排序树对于每一个结点,它的左子树的所有结点的值都小于这个结点的值,而它的右子树的所有结点的值都大于这个结点的值。而釆用中序遍历,遍历顺序为左根右,因此可以得到按增序排列的关键码序列。

19.在用堆排序算法排序时,如果要进行增序排序,则需要采用“大根堆”。( )

【答案】√

【解析】堆排序:基本思想先将原始序列构造成一个堆(初始堆) ,使其n 个元素的最大(小) 值处