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

2017年昆明理工大学J012数据结构与算法分析(同等学力加试)复试仿真模拟三套题

  摘要

目录

2017年昆明理工大学J012数据结构与算法分析(同等学力加试) 复试仿真模拟三套题(一)... 2 2017年昆明理工大学J012数据结构与算法分析(同等学力加试) 复试仿真模拟三套题(二). 10 2017年昆明理工大学J012数据结构与算法分析(同等学力加试) 复试仿真模拟三套题(三). 16

第 1 页,共 22 页

一、应用题

1. 有A 、B 两人通过信箱进行辩论,每人都从自己的信箱中取得对方的问题。将答案和向对方

B 的信箱最多放N 提出的新问题组成一个邮件放入对方的邮箱中,设A 的信箱最多放M 个邮件,

个邮件。初始时 A 的信箱中有x 个邮件

邮件数减1. 。

A 、B 两人操作过程:

从A 的信箱中取出一个邮件;

回答问题并提出一个新问题;

将新邮件放入B 的信箱;

从B 的信箱中取出一个邮件;

回答问题并提出一个新问题;

将新邮件放入A 的信箱;

当信箱不为空时,辩论者才能从信箱中取邮件,否则等待。

当信箱不满时,辩论者才能将新邮件放入信箱,否则等待。

请添加必要的信号量和P 、V (或wait signed )操作,以实现上述过程的同步,要求写出完整过程,并说明信号量的含义和初值。

【答案】首先定义两个互斥信号量:mutexA 和mutexB , 初始时为1,分别用来实现对A 的邮箱和B 的邮箱的互斥使用;然后针对A 的邮箱再定义两个信号量emptyA 和fullA ,

初值分别为

和X ,分别表示信箱中仍能存放信的数量和已经存放的信的数量,同理设置emptyB 和fullB , 初值为和y 。

第 2 页,共 22 页 B 中有y 个辩论者每取出一个邮件,初始代码:

通信代码:

从A 的信箱中取出一个邮件;

回答问题并提出一个新问题;

将新邮件放入B 的信箱;

从B 的信箱中取出一个邮件;

回答问题并提出一个新问题;

将新邮件放入A 的信箱;

2. 设依以下次序给出关键字:34,16,19,21,5,49,24,62,3,17,45,8,构造3阶树。要求从空树开始,每插入一个关键字,画出一棵树。

【答案】如图所示:

第 3 页,共 22 页

3. 设输入序列为2, 3, 4, 5, 6, 利用一个栈能得到序列2, 5, 3, 4, 6吗? 栈可以用单链表实现吗?

【答案】不能得到序列2, 5, 3, 4, 6。因为根据输入序列,2进栈之后,2出找,3, 4, 5依次进栈。5出栈,此时栈中剩下3, 4。因为4在栈顶,所以4应该比3先出栈,不能得到提供的序列。栈可以用单链表实现,这就是链栈。由于栈只在栈顶操作,所以链栈通常不设头结点。

4. 设某文件经内排序后得到100个初始归并段(初始顺串),若使用多路归并排序算法,并要求三趟归并完成排序,问归并路数最少为多少?

【答案】设归并路数为k ,归并趟数为s ,则因且k 为整数,故k=5,即最少5-路归并完成排序。

5. 以归并算法为例,比较内部排序和外部排序的不同,说明外部排序如何提高操作效率。

【答案】(1)内部排序中的归并排序是在内存中进行的归并排序,辅助空间为外部归并排序是将外存中的多个有序子文件合并成一个有序子文件,将每个子文件中记录读入内存后的排序方法可采用多种内排序方法。外部排序的效率主要取决于读写外存的次数,即归并的趟数。

(2)因为归并的趟数其中,m 是归并段个数,k 是归并路数。增大k 和减少m 都可减少归并趟数。应用中通过败者树进行多(k )路平衡归并和置换一选择排序减少m ,来提高外部排序的效率。

6. 某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号 机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下:

第 4 页,共 22 页