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

2018年北京工业大学计算机学院895计算机学科专业基础之数据结构考研基础五套测试题

  摘要

一、填空题

1. 如下的算法分别是后序线索二叉树求给定结点node 的前驱结点与后继结点的算法,

请在算法空格处填上正确的语句。 设线索二叉树的结点数据结构为

其中:left 指向其左孩子,

【答案】

left 指向其前驱;,right 指向其后继。

, right 指向其右孩子,,,

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

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

3. 设有两个算法在同一机器上运行,其执行时闻分别为100n 2和2n ,要使前者快于后者,n 至少为_____。

【答案】15

2n 【解析】当时,100n2>2n,而,时,100n <2

4. 在单链表L 中,指针P 所指结点有后继结点的条件是_____

【答案】P ﹣>next! =NULL

【解析】指针所指节点的指针域所指向的元素非空,说明该指针所指节点有后继结点。

5. 表达式23+((12*3﹣2)/4+34,5/7) +108/9的后缀表达式是_____。 【答案】(表达式中的点(.)是数分隔符,如是三个数)

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

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

7. 高度为h 的堆中,最多有_____元素,最少有_____个元素。 【答案】

。当最后一层只有【解析】当这个堆构成的是满二叉树时,元素的个数最多,元素个数为

一个元素时,此时堆的元素个数最少,元素个数为。

8. 在一个具有n 个单元的顺序栈中,假定以地址高端(即下标为n 的单元) 作为栈底,以top 作为栈顶指针,则当向栈中压入一个元素时,top 的变化是top =_____。

【答案】top ﹣1

【解析】由于栈底在地址高端,栈中压入一个元素时,栈顶向地址底端移动一个单位,所以top ﹣1。

9. 设为哈夫曼树的叶结点数目,则该哈夫曼树共有_____个结点。 【答案】

【解析】哈夫曼树只有度为0和2的节点。

10._____;串是一种特殊的线性表,其特殊性表现在_____;串的两种最基本的存储方式是_____、两个串相等的充分必要条件是_____。

【答案】其数据元素都是字符;顺序存储;链式存储;串的长度相等且两串中对应位置的字符也相等

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

【答案】O(1);O(n);O(1);O(1)

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

12.顺序栈用存储数据,栈顶指针是top ,则值为x 的元素入栈的操作是_____。

【答案】if(top!=n)data[++top]=x ;

【解析】先判断栈是否满,如果不满,元素入栈。否则返回溢出信息。

二、单项选择题

13.在双向链表指针P 的结点前插入一个指针q 的结点操作是( )。

A.p ﹣>llink =q ;q ﹣>Rlink =p ;p ﹣>Llink ﹣>Rlink =q ;q ﹣>Llink =q ;

B.p ﹣>llink =q ;p ﹣>Llink ﹣>Rlink =q ;q ﹣>Rlink =p ;q ﹣>Llink =p ﹣>Llink ;

C.q ﹣>Rlink =p ;q ﹣>Llink =p ﹣>L1ink ;p ﹣>L1ink ﹣>Rlink =q ;p ﹣>Llink =q ;

D.q ﹣>llink =p ﹣>llink;q ﹣>Rlink =q ;p ﹣>llink =q ;p ﹣>llink =q ;

【答案】C

14.一棵二叉树高度为h ,所有结点的度或为0或为2,则这棵二叉树最少有( )个结点。

A.2h

B.2h ﹣1

C.2h +l

D.h +1

【答案】B

【解析】此树满足哈夫曼树,除根节点外每层有两个节点。

15.下列措施中, 能加快虚实地址转换的是1增大快表(TLB)2让页表常驻内存3增大交换区( )

A. 仅1

B. 仅2

C. 仅1, 2

D. 仅2, 3

【答案】C

【解析】加大快表能增加快表的命中率, 即减少了访问内存的次数; 让页表常驻内存能够使cpu 不用访问内存找页表, 从也加快了虚实地址转换。而增大交换区只是对内存的一种扩充作用, 对虚实地址转换并无影响

16.假定下列指令已装入指令寄存器。则执行时不可能导致CPU 从用户态变为内核态(系统态) 的是( )。 A.

B. ; 产生软中断 C. ; 寄存器R0的内容取非 D.MOVRO , addr ; 把地址处的内存数据放入寄存器RO 中