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

2017年浙江工业大学教育科学与技术学院885数据结构(C语言版)之数据结构考研仿真模拟题

  摘要

一、填空题

1. 完善算法:求KMP 算法.next 数组。

END ; 【答案】

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

【答案】

【解析】快速排序(quicksort )的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行

排序,以达到整个序列有序。

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

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

4. 已知一循环队列的存储空间为环队列判满的条件是( )

【答案】

5. 外排序的基本操作过程是_____和_____。

;归并 【答案】生成有序归并段(顺串)

6. 执行顺序查找时,存储方式可以是_____,折半查找时,要求线性表_____,分块查找时要求线性表_____,而哈希表的查找,要求线性表的存储方式是_____。

【答案】顺序存储或链式存储;顺序存储且有序;块内顺序存储,块间有序;散列存储

7. 以下程序的功能是实现带附加头结点的单链表数据结点逆序连接,请填空完善之。

【答案】(1)(2)

链表未到尾就一直进行

将当前结点作为头结点后的第一元素结点插入

在B

其中

队头和队尾指针分别为front 和rear , 则此循

8. 假设一个15阶的上三角矩阵A 按行优先顺序压缩存储在一维数组B 中,则非零元素中的存储位置k=_____。(注:矩阵元素下标从1开始)

【答案】93

【解析】对于上三角矩阵,将代入得93。

9. 在双向循环链表中,向P 所指的结点之后插入指针f 所指的结点,其操作是_____、_____、_____、_____。

【答案】

10.在进行入栈运算时应先判别栈是否_____:在进行出栈运算时应先判别栈是否_____:当栈中元素为n 个,进行入栈运算时发生上溢,则说明该栈的最大容量为_____。为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的空间时,应将两栈的_____分别设在内存空间的两端,这样只有当_____时才产生溢出。

【答案】满;空;n ; 栈底;两栈顶指针相邻(即值之差的绝对值为1)

二、选择题

11.以下说法错误的是( )。

(1)算法原地工作的含义是指不需要任何额外的辅助空间 (2)在相同的规模n 下,复杂度

的算法在时间上总是优于复杂度

的算法

(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界 (4)同一个算法,实现语言的级别越高,执行效率就越低 A. (1) B. (1), (2) C. (1), (4) D. (3) 【答案】A

【解析】算法原地工作的含义不是指不需要任何额外的辅助,而是算法所需要的辅助空间不随着问题的规模而变化,是一个确定的值。

12.,

用直接插入排序方法对下面4个序列进行排序(由小到大)元素比较次数最少的是( )。

【答案】C

13.某以太网拓扑及交换机当前转发表如下图所示,主机向主机发送1个数据帧,主机

A. B. C. D.

收到该帧后,向主机

发送一个确认帧,

交换机对这两个帧的转发端口分别是( )