2017年江西农业大学计算机与信息工程学院908数据结构[专业硕士]考研题库
● 摘要
一、填空题
1. 关键码序列(Q ,H ,C ,Y ,Q ,A ,M ,S ,R ,D ,F ,X ),要按照关键码值递增的次序进行排序,若采用初始步长为4的希尔排序法,则一趟扫描的结果是_____; 若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是_____。
【答案】(Q ,A ,C ,S ,Q ,D ,F ,×,R ,H ,M ,Y ); (F ,H ,C ,D ,a ,A ,M ,Q ,R ,S ,Y ,X )
【解析】希尔排序的基本思想是:先将整个待排记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。
快速排序(quicksort )的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
2. 假定查找有序表
【答案】37/12
【解析】折半查找时每个的次数如表所示:
表
平均查找次数为
3. 深度为H 的完全二叉树至少有_____个结点; 至多有_____个结点; H 和结点总数N 之间的关系是_____。
【答案】
4. 属于不稳定排序的有_____。
【答案】希尔排序、简单选择排序、快速排序、堆排序等
5. 设数组
数组中任一元素
均占内存48个二进制位,从首地址2000开始
中每个元素的概率相等,则进行折半查找时的平均查找长度为_____
连续存放在主内存里,主内存字长为16位,那么
(1)存放该数组至少需要的单元数是_____;
(2)存放数组的第8列的所有元素至少需要的单元数_____; (3)数组按列存储时,元素【答案】270; 27; 2204
第 2 页,共 67 页
的起始地址是_____。
【解析】
数组的元素个数为需要
第8列有9个元素,共占
因为每个元素占内存48个二进制位,即6个字节。故总
个单元数。
个字节,因此至少需要
个单元数。由题知,每个元素占3
个字节,因为主内存字长为16位,即2个字节,所以至少需要
个单元。按列存储时,的起始地址为
6. 设有一个10阶对称矩阵A 采用压缩存储方式,(以行为主序存储:)则
【答案】33
【解析】设存储的元素的行标为i ,列标为j 。若
则
则的地址为
的地址为_____。
若
的地址为将代入得33。
7. 设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
8. 设为哈夫曼树的叶结点数日,则该哈夫曼树共有_____个结点。
【答案】
【解析】哈夫曼树只有度为0和2的节点。
9. 根据线性表的链式存储结构中每一个结点包含的指针个数,将线性链表分成_____和_____; 而又根据指针的连接方式,链表又可分成_____和_____。
【答案】单链表;双链表;(动态)链表;静态链表
【解析】线性表的链式存储结构根据每个结点包含的指针个数分为单链表和双链表,单链表只包含一个指针,指向后续元素,双链表包括两个指针,指向前一个元素和后续元素。根据指针的连接方式,链表可分为动态链表和静态链表。静态链表的指针指向下一个元素的编号,动态链表的指针指向下一个元素的物理位置。
第 3 页,共 67 页
10.以下程序的功能是实现带附加头结点的单链表数据结点逆序连接,请填空完善之。
【答案】(1)(2)
链表未到尾就一直进行
将当前结点作为头结点后的第一元素结点插入
二、选择题
11.下列选项中,会导致用户进程从态切换到内核的操作是( )
I. 整数除以零 II. Sin( )函数调用 III. read系统调用 A. 仅 I 、II B .仅 I 、III C. 仅II 、III D. I、II 和III 【答案】B
【解析】对于I ,系统发生异常,需要进入内核态由操作系统进行处理,而read 系统调用函数也是在内核态执行,sin ( )就是普通的用户函数,在用户态执行,故答案为C 。
12.无向图G=(V , E ), 其中:V={a, b , c , d , e , f )}, E={(a , b ), (a , e ), (a , c ),,(b , e ), (c , f ),(f , d )(e , d ), 对该图进行深度优先遍历,得到的顶点序列正确的是( )。
A.a , b , e , c , d , f B.a , c , f , e , b , d C.a , e , b , c , f , d D.a , e , d , f , c , b
【答案】D
【解析】图的深度优先遍历过程是:从图中某个初始顸点V 出发,首先访问初始顶点V ,然后选择一个与顶点V 相邻且没被访问过的顶点U 为初始顶点。再从U 出发进行深度优先搜索,直到图中与当前顶点V 邻接的所有顶点都被访问过为止。
,,,,,根据E={(a , b )(a ,e )(a ,c )(b ,e )(c , f )(f ,d ), (e ,d )}可知各顶点之间的邻接关系。依据上面的原则遍历,得出遍历顺序a , e ,d ,f ,c , b 。
13.若一棵完全二叉树有768个结点,则该二叉树中叶结点的个数是( )。
A.257 B.258 C.384 D.385 【答案】C
【解析】由
:
和
_
_可知
,
第 4 页,共 67 页
即显然