2021年辽宁大学信息学院854计算机专业基础考研核心题库之数据结构算法设计题精编

特别说明

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

版权声明

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

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

重要提示

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

一、2021年辽宁大学信息学院854计算机专业基础考研核心题库之数据结构算法设计题精编

1.阅读下列算法的类Pascal描述,根据算法的要求,在相应的空格处写出正确合理的语句。

算术表达式求值的流程,其中OPTR为算术符栈,OPND为操作数栈,precede(oper1,oper2)是比较运算符优先级别的函数,为两操作数的运算结果函数(#表示运算起始和终止符号)。

【答案】(1)

(2)

(3)

2.线性表中元素递增有序且按顺序存储于计算机内。要求设计一算法完成如下操作:

(1)用最少时间在表中查找数值为x的元素。

(2)若找到,将其与后继元素的位置相交换。

(3)若找不到,将其插入表中,并使表中元素仍递增有序。

【答案】顺序存储的线性表递增有序,可以顺序查找,也可以折半查找。题目要求用最少的时间在表中查找数值为x的元素,这里应使用折半查找方法。

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

(1)给出适用于计数排序的数据表定义;

(2)使用Pascal或C语言编写实现计数排序的算法;

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

(4)与简单选择排序相比较,这种方法是否更好?为什么?

【答案】(1)数据表定义为:

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

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

(4)简单选择排序比这种排序好,因为对具有n个记录的数据表进行简单选择排序只需进行

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

4.从左到右及从右到左遍历一个单链表是可能的,其方法是在从左到右遍历的过程中将连接方向逆转,如下图所示。在图中的指针p指向当前正在访问的结点,指针pr指向指针p所指结点的左侧的结点。此时,指针p所指结点左侧的所有结点的连接方向都已逆转。

(1)使用Pascal或C语言编写一个算法,从任一给定位置开始,将指针p右移一个结点。如果p移出链表,则将p置为NULL,并让pr停留在链表最右边的结点上。

(2)使用Pascal或C语言编写一个算法,从任一给定位置开始,将指针p左移一个结点。如果p移出链表,则将p置为NULL,并让pr停留在链表最左边的结点上。

【答案】(1)算法描述如下:

(2)算法描述如下:

5.编写一个过程采用非递归方法计算一棵二叉树的所有结点个数。

【答案】

相关文档
最新文档