2021年河南大学软件学院928程序设计、数据结构考研核心题库之数据结构应用题精编

特别说明

本书根据历年考研大纲要求并结合历年考研真题对该题型进行了整理编写,涵盖了这一考研科目该题型常考试题及重点试题并给出了参考答案,针对性强,考研复习首选资料。

版权声明

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

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

重要提示

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

一、2021年河南大学软件学院928程序设计、数据结构考研核心题库之数据结构应用题精编

1.如果只要找出一个具有n个元素的集合的第个最小元素,你所学过的排序方法中哪种最适合?给出实现的思想。

【答案】在具有n个元素的集合中找第个最小元素,应使用快速排序方法。其基本思想如下:设n个元素的集合用一维数组表不,其第一个元素的下标为1,最后一个元素的下标为n。以第一个元素为“枢轴”,经过快速排序的一次划分,找到“枢轴”的位置,若,则该位置的元素即为所求;若,则在1至间继续进行快速排序的划分;若,则在至n间继续进行快速排序的划分。这种划分一直进行到为止,第位置上的元素就是第个最小元素。

2.仔细阅读下面的Pascal过程,并回答有关问题。

(1)在__________中填上正确的语句,使该过程能完成预期的功能;

(2)该过程使用的是什么排序方法?

(3)当数组A的元素初始时已按值递增排序,该过程执行中会进行多少次比较?多少次交换?

(4)当数组A的元素初始时己按值递减排序,该过程执行中会进行多少次比较?多少次交换?

【答案】(1)①499、②、③

(2)本过程采用的是冒泡排序。

(3)进行499次比较,0次交换。

(4)在此种情况下,比较次数和交换次数都是最多的。其比较次数为

因为每比较一次关键字就需要交换一次记录,则交换次数最多为

由于每次交换实际上都要移动记录3次,因此记录移动次数最多为。

3.推广最优二叉树的Huffman构造方法到最优t叉树,对于权1,4,7,9,16,25,36,49,81,100构造最优3叉树。

【答案】设一组权中含有n个权,构造扩充t叉树的方法与构造扩充二叉树的方法完全类似,不同的是从下往上生成圆形(或称父母)结点的过程中,要保证每一次下层结点的个数大于等于t,而最后一次的结点个数等于t。因此,必须在权组中补充值为0的权,具体补充值为0的权的个数计算方法可说明如下:

(1)循环:当时,反复执行;

(2)(m 为补0的个数)。

n=10,t=3,经计算得m=1,故对应的扩充t叉树为:

4.画出下列广义表的两种存储结构图。

【答案】该广义表的一种存储结构如下图1所示。

图1

广义表的另一种存储结构如下图2所示。

图2

5.单链表A、B,数据(设为整型)都为递增有序,编写算法,利用源结点,将A中与B具有相同数据的结点删除,并将B中与原A表不同数据的结点插入A中,保持A的递增有序,并写出算法思想。

【答案】由于A和B都是递增有序的单链表,所以可以借鉴归并排序过程中的合并过程。用两个指针p和q分别指向A和B当前处理的位置,如果则,把p往后移动(即);否则,如果,则需要把p删除;否则,将q插入到p前面,并将q往

后移。具体算法描述如下:

相关文档
最新文档