当前位置:问答库>考研试题

2018年辽宁石油化工大学计算机与通信工程学院951数据结构考研基础五套测试题

  摘要

目录

2018年辽宁石油化工大学计算机与通信工程学院951数据结构考研基础五套测试题(一) ... 2 2018年辽宁石油化工大学计算机与通信工程学院951数据结构考研基础五套测试题(二) . 14 2018年辽宁石油化工大学计算机与通信工程学院951数据结构考研基础五套测试题(三) . 25 2018年辽宁石油化工大学计算机与通信工程学院951数据结构考研基础五套测试题(四) . 34 2018年辽宁石油化工大学计算机与通信工程学院951数据结构考研基础五套测试题(五) . 44

一、填空题

1. 完善算法:求KMP 算法.next 数组。

k :=_____;next[1]:=0;

k :=_____;

END ;

【答案】0;next[k]

2. 对于双向链表,在两个结点之间插入一个新结点需修改的指针共_____个,单链表为_____个。

【答案】4;2

3. 已知如下程序段:

语句1执行的时间复杂度为_____:语句2执行的时间复杂度为_____:语句3执行的时间复杂度为_____:语句4执行的时间复杂度为_____。

【答案】(1)n+1 (2)n

(3)n(n+3)/2 (4)n(n+l)/2

【解析】语s 句1执行到不符合条件情况下,执行了n +1次。当语句1不符合条件了是不会执行语句2的,所以语句2被执行了n 次。语句3每次都要执行到不符合条件,故为2+3+4...... +(n+l) 加起来就是n(n+3)/2。语句3不符合条件了是不会执行语句4的。所以语句4被执行了1+2+3...... +n 即n(n+l)/2。

4. 从平均时间性能而言,_____排序最佳。

【答案】快速

【解析】快速算法的平均时间复杂度为nlogn 。

5. 外排序的基本操作过程是_____和_____。

【答案】生成有序归并段(顺串) ;归并

6.

线性表

【答案】(n﹣1)/2

【解析】删除第一个元素需要移动n ﹣1次,以此类推,删除最后一个元素需要移动0次。平均次数为(n﹣l)*n/n/2=(n﹣l)/2。

7. 二叉树由_____,_____,_____三个基本单元组成。

【答案】根结点;左子树;右子树

8. 按LSD 进行关键字排序,除最次位关键字之外,对每个关键字进行排序时,只能用_____的排序方法。

【答案】稳定

9. 用循环链表表示的队列长度为n ,若只设头指针,则出队和入队的时间复杂度分别是_____和_____;若只设尾指针,则出队和入队的时间复杂度分别是_____和_____。

【答案】O(1);O(n);O(1);O(1)

【解析】队列的出队操作即删除队头的元素,队列的入队操作即在队尾添加元素,循环链表只设头指针,出队时,只要把头结点的下一个结点删除就好了,入队时,要把新的结点插入队尾,必须把队列遍历,找到队尾指针,才能插入。循环队列只设尾指针,出队时只要把为指针的下一个结点或者下下个结点删除即可,入队时,只要在尾指针的后面插入新的结点,并更新尾结点即可。

10.有向图G=(V, E) ,其中权d 。E(G)为

,则从源点0到顶点3的最短路径长度是_____,经过的中间顶点是_____。

【答案】50;4

用数组表示,假定删除表中任一元素的概率相同,则删除一个元

素平均需要移动元素的个数是_____。

,用三元组表示弧及弧上的

二、算法设计题

11.设有一头指针为L 的带有表头结点的非循环双向链表,其每个结点中除有pred(前驱指针) ,data(数据) 和next(后继指针) 域外,还有一个访问频度域freq 。在链表被启用前,其值均初始化为零。每当在链表中进行一次Locate(L,X) 运算时,令元素值为x 的结点中freq 域的值增1,并使此链表中结点保持按访问频度非增(递减) 的顺序排列,同时最近访问的结点排在频度相同的结点的最后,以便使频繁访问的结点总是靠近表头。试编写符合上述要求的Locate(L,x) 运算的算法,该运算为函数过程,返回找到结点的地址,类型为指针型。

【答案】算法如下:

//L是带头结点的按访问频度递减的双向链表

//本算法先査找数据x ,査找成功时结点的访问频度域增1,最后将该结点按频度递减插入链表中

//P为L 表的工作指针,q 为p 的前驱,用于査找插入位置

//查找值为x 的结点

("不存在所査结点\n”) ;exit(0);

//令元素值为x 的结点的freq 域加

1

//将P 结点从链表上摘下

//以下査找P 结点的插人位置

//将P 结点插人

//返回值为x 的结点的指针

//算法结束

12.设A 和B 均为下三角矩阵,每一个都有n 行n 列。因此在下三角区域中各有n(n+l)/2个无素。另设有一个二维数组C ,它有n 行n +1列。试设计一个方案,将两个矩阵A 和B 中的下三角区域元素存放于同一个C 中。要求将A 的下三角区域中的元素存放于C 的下三角区域中,B 的下三角区域中的元素转置后存放于C 的上三角区域中。并给出计算A 的矩阵元素矩阵元素

在C 中的存放位置下标的公式。

//本算法将n 阶方阵的下三角矩阵A 和B 置于C 中,矩阵B 要逆置

和B 的

【答案】算法如下: