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

2017年军事医学科学院总后勤部卫生部药品仪器检验所836计算机应用之数据结构考研仿真模拟题

  摘要

一、填空题

1.

【答案】5

2. 抽象数据类型的定义仅取决于它的一组_____,而与_____无关, 即不论其内部结构如何变化,只要它的_____不变,都不影响其外部使用。

【答案】逻辑特性;在计算机内部如何表示和实现;数学特性

3. 设广义表

是_____tail(L )是_____;L 的长度是_____;深度是_____。=_____

;;2;2 【答案】( )(( ))

【解析】广义表的表头是表的第一个元素,表尾是除了第一个元素外其余的所有的元素构成的表;表的长度指表中元素的个数;表的深度指展开后括号的层数。

4. 在基于关键字比较且时间为O (nl 〇g2n )的排序中,若要求排序是稳定的,则可选用_____,则可选用_____排序。 排序;若要求就地排序(及辅助空间为0(1))

【答案】归并;堆

5. 在二叉树中,指针p 所指结点为叶结点的条件是_____。

【答案】

【解析】叶子节点的左右孩子都不存在。

6. —棵有个结点的满二叉树有_____个度为1的结点、有_____个分支(非终端)结点和_____个叶子,该满二叉树的深度为_____。

【答案】

【解析】满二叉树没有度为1的结点,度为0的结点等于度为2的结点个数+1。

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

【程序说明】本程序完成将二叉树中左、右孩子交换的操作。交换的结果如下所示(编科略)本程序采用非递归的方法,设立一个堆栈交换左、右子树的算法为:

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

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

第 2 页,共 33 页

存放还没有转换过的结点,它的栈顶指针为。

(1)

{(2)

If ( (3) )

} }}

【答案】

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

8. 设m 、n 均为自然数,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+1。

①以下是该函数的程序段,请将未完成的部分填入,使之完整。

②执行程序,f (6,4)=_____。 【答案】①1; 1; f (m ,n -1); n ②9

9. 文件可按其记录的类型不同而分成两类,即_____和_____文件。

【答案】操作系统文件;数据库

10.一个有2001个结点的完全二叉树的高度是_____。

【答案】11

【解析】

完全二叉树的高度

第 3 页,共 33 页

11.检索是为了在文件中寻找满足一定条件的记录而设置的操作。检索可以按_____检索。也可以按_____检索;按_____检索又可以有_____检索和_____检索。

【答案】关键字;记录号;记录号;顺序;直接

12.在一棵m 阶的个数是_____。

【答案】

【解析】m 阶树除根结点和叶子结点外,结点中关键字个数最多是最少

13.用循环链表表示的队列长度为n ,若只设头指针,则出队和入队的时间复杂度分别是_____和_____;若只设尾指针,则出队和入队的时间复杂度分别是_____和_____。

【答案】

【解析】队列的出队操作即删除队头的元素,队列的入队操作即在队尾添加元素,循环链表只设头指针,出队时,只要把头结点的下一个结点删除就好了,入队时,要把新的结点插入队尾,必须把队列遍历,找到队尾指针,才能插入。循环队列只设尾指针,出队时只要把为指针的下一个结点或者下下个结点删除即可,入队时,只要在尾指针的后面插入新的结点,并更新尾结点即可。

14.下列程序是快速排序的非递归算法,请填写适当的语句,完成该功能。

第 4 页,共 33 页

树中,若在某结点中插入一个新关键字而引起该结点分裂,则此结点中原有的

关键字的个数是_____;若在某结点中删除一个关键字而导致结点合并,则该结点中原有的关键字