2018年北方民族大学计算机应用技术832C语言程序设计与数据结构之数据结构考研基础五套测试题
● 摘要
一、填空题
1. VSAM(虚拟存储存取方法) 文件的优点是:动态地_____,不需要文件进行_____,并能较快地_____进行查找。
【答案】分配和释放存储空间;重组;对插入的记录
2. 对于双向链表,在两个结点之间插入一个新结点需修改的指针共_____个,单链表为_____个。
【答案】4;2
3. 模式串
【答案】01122312
4. 对于一个具有n 个结点的二叉树,当它为一棵_____二叉树时具有最小高度, 当它为一棵_____时,具有最大高度。
【答案】完全;只有一个叶结点的二叉树
5. VSAM 系统是由_____、_____、_____构成的。
【答案】索引集;顺序集;数据集
6. 以下是用类C 语言写出的算法,该算法将以二叉链表存储的二叉树中的叶结点按从左到右的顺序链成一个带头结点的双向循环链表,链接时,结点的Lchild 域作为前链域,指向结点的直接前驱,结点的Rchild 域作为后链域,指向结点的直接后继。算法中,使用一个顺序栈stack , 栈顶指针为top ,P ,t 为辅助指针,head 为双向循环链表的头指针。试填充算法中的空格,使算法完整。
第 2 页,共 44 页
的next 函数值序列为_____。
【答案】
7. n 个顶点的有向图用邻接矩阵array 表示,下面是其拓扑排序算法,试补充完整。
注:(1)图的顶点号从0开始计;
(2)indegree是有n 个分量的一维数组,放顶点的入度, (3)函数crein 用于记算顶点入度; (4)有三个函数回1,否则0) 。
("图有回路") ;
【答案】
其含义为数据data 入栈,出栈和测试栈是否空(不空返
【解析】有向图用邻接矩阵表示时,顶点i 的入度等于第i 列的所有元素之和。拓扑排序过程:首先将入度为0的顶点全部进栈。然后弹出栈顶结点,并将与弹出的顶点相连的其它顶点的入度 减一,然后判断这些顶点的入度是否为零,如果为零,继续进栈,重复这些操作,完成拓扑排序。
8. 在下面的程序段中,对X 的赋值语句的时间复杂度为_____ (表示为n 的函数) 。
【答案】1+(1+2) +(1+2+3) +…+(l+2+…+n) =n(n+1)(n+2)/6,即O(n)
【解析】当i =l 时,赋值语句就被执行了一次。当i =2时,赋值语句被执行了1+2次。当i =3时,赋值语句被执行了1+2+3次。...... 可以推出赋值语句总共被执行了1+(1+2) +(1+2+3) +…+(l+2+... +n) =n(n+1)(n+2)/6次。
第 3 页,共 44 页
9. 克鲁斯卡尔算法的时间复杂度为_____,它对_____图较为适合。
【答案】
;边稀疏
10.G 是一个非连通无向图,共有28条边,则该图至少有_____个顶点。
【答案】9
【解析】求该非连通无向图的最少顶点数,则该图为一个孤立的顶点和一个完全连通图。
二、判断题
11.一般来说,若深度为k 的n 个结点的二叉树只有最小路径长度,那么从根结点到第k ﹣1层具有的最多结点数为余下的
【答案】 √
【解析】求最小路径长度,即构成哈夫曼树,当哈夫曼树为k ﹣1层全满时,此时从根结点到第k ﹣1层具有最大的结点数为
12.在任何情况下,归并排序都比简单插入排序快。( )
【答案】×
【解析】错误。待排序序列为正序时,简单插入排序比归并排序快。
13.在外部排序过程中,对长度为n 的初始序列进行“置换-选择”排序时,可以得到的最大初始有序段的长度不超过n/2。( )
【答案】×
【解析】当输入文件以关键字的升序排序时,只能得到一个长度为文件长度的初始归并段
14.为提高排序速度,进行外排序时,必须选用最快的内排序算法。( )
【答案】×
【解析】外部排序算法最常用的是多路归并,即将原文件分解成多个能够一次性装人内存的部分,分别把每一部分调入内存完成排序。然后,对己经排序的子文件进行归并排序。
15. 有n 个数顺序(依次) 入栈,出栈序列有Cn 种,( )
【答案】 √
16.循环队列也存在空间溢出问题。( )
【答案】 √
【解析】循环队列的存储空间也是有限的,因此也存在空间溢出问题。
17.哈夫曼树度为1的结点数等于度为2和0的结点数之差。( )
【答案】×
第 4 页,共 44 页
个结点在第k 层的任一位置上。( )