2017年山东建筑大学计算机科学与技术学院900计算机专业综合之数据结构考研题库
● 摘要
一、填空题
1. 在基于关键字比较且时间为O (nl 〇g2n )的排序中,若要求排序是稳定的,则可选用_____,则可选用_____排序。 排序;若要求就地排序(及辅助空间为0(1))
【答案】归并;堆
2. 阅读下列程序说明和裎序,填充程序中的_____。
【程序说明】本程序完成将二叉树中左、右孩子交换的操作。交换的结果如下所示(编科略)本程序采用非递归的方法,设立一个堆栈交换左、右子树的算法为:
(1)把根结点放入堆栈。
(2)当堆栈不空时,取出栈顶元素,交换它的左、右子树,并把它的左、右子树分别入栈。(3)重复(2)直到堆栈为空时为止。
存放还没有转换过的结点,它的栈顶指针为
。
(1)
{(2)
If ( (3) )
}
}} 【答案】
【解析】本题主要使用堆栈完成了二叉树左右子树交换的操作。首先根结点进栈,然后判断栈足否为空,如果不为空,则取栈顶元素,交换取出节点的左右指针。并将左右指针分别进桟,重复这一操作。完成二叉树左右孩子的交换。
3. 分别采用堆排序,快速排序,起泡排序和归并排序,对初态为有序的表,则最省时间的是_____算法,最费时间的是_____算法。
【答案】起泡;快速
,【解析】当初态为有序表时,冒泡排序只需要进行一趟比较即可,此时时间复杂度为〇(n )而快速排序算法需要比较的次数达到最大,时间复杂度为
4. 实现字符串拷贝的函数strcpy 为:
【答案】
5. 在单链表L 中,指针P 所指结点有后继结点的条件是_____
【答案】
【解析】指针所指节点的指针域所指向的元素非空,说明该指针所指节点有后继结点。
6. 完善算法:求KMP 算法.next 数组。
END ;
【答案】
7. 在循环队列中,队列长度为n ,存储位置从0到,编号,以rear 指示实际的队尾元素,现要在此队列中插入一个新元素,新元素的位置是( )。
【答案】
8. 当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用_____存储结构。
【答案】顺序
【解析】顺序存储结构的存取操作比较方便,但插入和删除操作不如链式存储结构方便,而且需要连续的存储空间,由于该线性表的元素总数基本稳定,而且很少进行插入删除操作,为了更快的存取元素,顺序表更合适。
9. 无用单元是指_____,例_____
【答案】用户不再使用而系统没有回收的结构和变量;
10.在拓扑分类中,拓扑序列的最后一个顶点必定是_____的顶点。
【答案】出度为0
【解析】如果最后一个顶点的出度不为0, 则必定还有顶点存在,与题目所说的最后一个顶点矛盾,所有最 后一个顶点的出度必定为零。
二、选择题
11.下列关于图的叙述中,正确的是( )。
I. 回路是简单路径
II. 存储稀疏图,用邻接矩阵比邻接表更省空间 III. 若有向图中存在拓扑序列,则该图不存在回路 A. 仅 II B. 仅 I 、II C. 仅III D. 仅 I 、III 【答案】C
【解析】第一个顶点和最后一个顶点相同的路径称为回路;序列中顶点不重复出现的路径称为简单路径;回路显然不是简单路径,所以选项I 错误。稀疏图用邻接表表示比邻接矩阵节省存储空间,稠密图适合用邻接矩阵的存储表示,所以选项II 错误。利用拓扑排序算法可以判断图中是否存在回路,即在拓扑排序输出结束后所余下的顶点都有前驱,则说明了只得到了部分顶点的拓扑有序序列,图中存在回路。所以选项III 正确。
12.已知小根堆为8,15,10,21,34, 16,12,删除关键字8之后需重建堆,在此过程中,关键字之间的比较数是( )。
A.1 B.2 C.3 D.4
【答案】C
【解析】堆排序中,依次输出堆顶的最小值,然后重新调整堆,如此反复执行,便得到一个有序序列。本题中,删除堆顶元素8后将最后一个元素12置于堆顶,然后调整堆:首先与15比较,12小于15, 所以不用交换;然后与10比较,因为10小于12,所以交换10和12的位置;调 整后12再与16比较,12小于16,调整堆过程结束。因此12共与15、10、16进行了三次比较。
13.在采用中断I/O方式控制打印输出的情况下,CPU 和打印控制接口中的I/O端口之间交换的信息不可能是( )。
A. 打印字符 B. 主存地址 C. 设备状态 D. 控制命令 【答案】B
【解析】I/O接口的功能包括:①选址功能;②传送命令功能;③传送数据功能;④反映I/O设备工作状态功能。A 项为数据,C 项为设备状态,D 项为命令。B 项,主存地址在中断方式控制下是不需要的,因此,它不可能是CPU 和打印控制接口中的I/O端口之间交换的信息。
相关内容
相关标签