2020年南通大学数据结构考研复试终极预测五套题

特别说明

本书严格按照该复试笔试科目最新考试题型、试题数量和考试难度出题,结合历年复试经验整理编写了复试五套终极预测模拟题并给出了答案解析。该套模拟题涵盖了这一考研复试笔试科目常考试题及笔试重点试题,针对性强,是考研报考本校复试笔试复习的首选资料。

版权声明

青岛掌心博阅电子书依法对本书享有专有著作权,同时我们尊重知识产权,对本电子书部分内容参考和引用的市面上已出版或发行图书及来自互联网等资料的文字、图片、表格数据等资料,均要求注明作者和来源。但由于各种原因,如资料引用时未能联系上作者或者无法确认内容来源等,因而有部分未注明作者或来源,在此对原作者或权利人表示感谢。若使用过程中对本书有任何异议请直接联系我们,我们会在第一时间与您沟通处理。

因编撰此电子书属于首次,加之作者水平和时间所限,书中错漏之处在所难免,恳切希望广大考生读者批评指正。

目录

2020年南通大学数据结构考研复试终极预测五套题(一) (4)

2020年南通大学数据结构考研复试终极预测五套题(二) (12)

2020年南通大学数据结构考研复试终极预测五套题(三) (18)

2020年南通大学数据结构考研复试终极预测五套题(四) (25)

2020年南通大学数据结构考研复试终极预测五套题(五) (32)

第3 页,共39 页

第 4 页,共 39 页

2020年南通大学数据结构考研复试终极预测五套题(一)

说明:本书由编写组多位高分在读研究生按照考试大纲、真题、指定参考书等公开信息潜心整理编写,仅供考研复习参考,与目标学校及研究生院官方无关,如有侵权请联系我们立即处理。

一、应用题

1. 已知一个单链表中每个结点存放一个整数,并且结点数不少于2,请设计算法以判断该链表中第二项起的每个元素值是否等于其序号的平方减去其前驱的值,若满足则返回true,否则返回false 。

【答案】判断结点的元素值是否等于其序号的平方减去其前驱的值,主要技术问题是结点的序号和前驱及后继指针的正确指向。核心语句段如下:

2. 一棵二叉树的先序、中序、后序序列分别如下(其中有部分结点未显示出来):

(1)将先序、中序、后序序列完整与出来。 (2)画出该二叉树。 【答案】(1)

(2)对应的二叉树如下图所示。

3. 包括n 个关键码的m 阶B-树在一次检索中最多涉及多少个结点?(要求写出推导过程。)

【答案】本题等价于“含有n 个关键字的m 阶B-树的最大高度是多少?”一次检索中最多走一条从根到叶子的路径,由于根结点至少有两棵子树,其余每个结点(除叶子)至少有棵子树,则第三层至少有个结点,第层至少有个结点。设B-树深度为l+1,即第l+1层是

叶子结点,叶子结点数是(下面推导)

,故有

,即。

注:推导B-树中叶子结点数s 与关键字数n 的关系式:

第 5 页,共 39 页

设B-树某结点的子树数为,则该结点的关键字数。对于有k 个结点的B-树,有

因为B 树上的关键字数,即

而B-树上的子树数可这样计算:每个结点(除根结点)都是一棵子树,设叶子(子树)数为s;则

综合(1)、(2)、(3)式,有。证毕。

4. 有一种简单的排序算法,叫做计数排序。这种排序算法对一个待排序的表(用数组表示)进行排序,并将排序结果存放到另一个新的表中。必须注意的是,表中所有待排序的关键码互不相同。计数排序算法针对表中的每个记录,扫描待排序的表一趟,统计表中有多少个记录的关键码比该记录的关键码要小。假设针对某一个记录,统计出的计算值为c ,那么,这个记录在新的有序表中的合适的存放位置即为c 。

(1)给出适用于计数排序的数据表定义; (2)使用C 语言编写实现计数排序的算法; (3)对于有n 个记录的表,关键码比较次数是多少? (4)与简单选择排序相比较,这种方法是否更好?为什么? 【答案】(1)数据表定义为:

(2)用C 语言实现的计数排序算法为:

(3)对于有n 个记录的表,关键码比较次数是

(4)简单选择排序比这种排序好,因为对具有n

个记录的数据表进行简单选择排序只需进行

次比较,且可在原地进行排序。

5. 叙述基数排序算法,并对下列整数序列图示其基数排序的全过程。

()

【答案】基数排序的基本思想:设立r 个队列,队列的编号分别为。首先按最低有效位的值,把n 个关键字分配到这r 个队列中;然后从小到大将各队列中关键字再依次收集起来;接着再按次低有效位的值把刚收集起来的关键字再分配到r 个队列中。重复上述收集过程,直至最高有效位。这样就得到了一个从小到大有序的关键字序列。为了减少记录移动的次数,队列可以采用链式存储分配,称为链队列。每个链队列设有两个指针,分别指向队头和队尾。

相关文档
最新文档