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

2017年大连海事大学X01数据结构复试实战预测五套卷

  摘要

一、应用题

1. 给出模式串

在KMP 算法中的next 和nextval 数组。

【答案】模式串的next 函数定义如下:

根据此定义,

可求解模式串

的next 和nextval 值如下:

2. 证明:在二叉树的三种遍历序列中,所有叶结点间的先后关系都是相同的。要求毎步论断都指出根据。

【答案】前序遍历是“根左右”. 中序遍历是“左根右”. 后序遍历是“左右根”。若将“根”去掉,三祌遍历就剩“左右”。三种遍历中的差别耽足访问根结点的时机不同。二叉树是递归定义的,对左右子树均是按左右顺序来遍历的,因此所有叶结点间的先后关系都是相同的。

3. 某计算机主存按字节编址,逻辑地址和物理地址都是32位,页表项大小为4字节。请回答下列问题。

(1)若使用一级页表的分存储管理方式,逻辑地址结构为:

则页的大小是多少字节?页表最大占用多少字节?

(2)若使用二级页表的分存储管理方式,逻辑地址结构为:

设逻辑地址为LA ,请分别给出其对应的页目录号和表索引达式。

(3)采用(1)中的分页存储管理方式,一个代码段起始逻辑地址为00008000H ,其长度为8KB ,被装载到从物理地址00900000H 开始的连续主存空间中。页表从主存0020 0000H 0020 0000H 开始的物理地址处连续存放,如下图所示(地址大小自下向上递增)。请计算出该代码段对应的两个页表项物理地址、这中框号以及计算出该代码段对应的两个页表项物理地址、这中框号以及计算出该代码段对应的两个页表项物理地址、这两个页表项中的框号以及代码页面2的起始物理地址。

【答案】

(1)因为页内偏移量是12位所以页大小为4KB 页表项数为页表索引可表示为:

表项,所以第8个页表项的物理地址=页表起始地

如下图所示。

该一级页表最大为

页表项的字节

(2)页目录号可表示为:

(3)代码页面1的逻辑地址为0000 8000H, 表明其位于第8个页处,对应页表中的第8个页

4. 有A 、B 两人通过信箱进行辩论,每人都从自己的信箱中取得对方的问题。将答案和向对方B 的信箱最多放N 提出的新问题组成一个邮件放入对方的邮箱中,设A 的信箱最多放M 个邮件,个邮件。初始时 A 的信箱中有x 个邮件邮件数减1. 。

A 、B 两人操作过程:

从A 的信箱中取出一个邮件; 回答问题并提出一个新问题; 将新邮件放入B 的信箱;

从B 的信箱中取出一个邮件; 回答问题并提出一个新问题; 将新邮件放入A 的信箱;

B 中有y 个辩论者每取出一个邮件,

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

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

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

初值分别为

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

和y 。

通信代码:

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

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

将新邮件放入B 的信箱;

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

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

将新邮件放入A 的信箱;

初始代码: