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

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

  摘要

一、应用题

1. 某计算机主存按字节编址,逻辑地址和物理地址都是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个页

2. 设将n (n >l )个整数存放到一维数组R 中。试设计一个在时间和空间两方面都尽可能高效的算法,将R 中存有的序列循环左移P (0<P <n )个位置,即将R 中的数据由

变换为

(1)给出算法的基本设计思想。 (2)根据设计思想,采用C 或

或JA V A 语言描述算法,关键之处给出注释。

原地逆置,

得到

(3)说明你所设计算法的时间复杂度和空间复杂度。 【答案】(1)算法的基本设计思想:先将n

个数据由然后再将数组R 中的前

(2)用C 语言算法描述如下:

(3)说明算法的复杂性:上述算法中3个Reverse 函数的的时间复杂度分别

为O

3. 对一个有t 个非零元素的

故算法的时间复杂度为矩阵,用

,算法的空间复杂度为0(1)。

个数和后P 个数分别原地逆置,

最终得到结果

要求:

的数组来表示,其中第0行的三个元素分

别为m ,n ,t ,从第一行开始到最后一行,每行表示一个非零元素;第一列为矩阵元素的行号,第二列为其列号,第三列为其值。对这样的表示法,如果需要经常进行该操作-确定任意一个元素

在B 中的位置并修改其值,应如何设计算法可以使时间得到改善?

【答案】题中矩阵非零元素用三元组表存储,查找某非零元素时,按常规要从第一个元素开始查找,属于顺序查找,

时间复杂度为

若使查找时间得到改善,可以建立索引,将各行行

号及各行第一个非零元素在数组B 中的位置(下标)放入一向量C 中。若查找非零元素,可先在数组C 中用折半查找到该非零元素的行号,并取出该行第一个非零元素在B 中的位置,再到B 中顺序(或折半)查找该元素,这时时间复杂度为

4. 从概念上讲,树、森林和二叉树是三种不同的数据结构,将树、森林转化为二叉树的基本目的是什么? 并指出树和二叉树的主要区別。

【答案】(1)基本目的

树的孩子兄弟链表表示法和二叉树的二叉链表表示法本质是一样的,只是解释不同,也就是说树(树是森林的特例,即森林中只有一棵树的特殊情况)可用二叉树唯一表示,并可使用二叉树的一些算法去解决树和森林中的问题。

(2)主要区别

一是二叉树的度至多为2,树无此限制;二是二叉树有左右子树之分,即使在只有一个分支的情况下,也必须指出是左子树还是右子树,树无此限制:三是二叉树允许为空,树一般不允许为空(有些书上考虑到与二叉树的转换,允许树为空)。

5. KMP 算法(字符串匹配算法)较Brute (朴素的字符串匹配)算法有哪些改进?

【答案】朴素的模式匹配度达到

时间复杂度是

KMP 算法有一定改进,时间复杂

主要优点是主串指针不回溯。当主串很大不能一次读入内存且经常发生部分匹配

时,KMP 算法的优点更为突出。

6. 下列广义表,可以唯一对应一棵二叉树的有?并归纳出唯一对应的条件。

【答案】唯一对应一棵二叉树的有(2)、(3)和(5)。唯一对应的条件:空表、只有一个元素的表、每个子表个数是零或是2的表。

7. 在如图1所示的伙伴系统中,回收两块首地址分别为768及128、大小为的存储块,请画出回收后该伙伴系统的状态图。

图1

【答案】因为小为

因为

所以768和所以首址

大小为

互为伙伴,伙伴合并后,首址为768,块大的块和首址512、大小为的块合并,成为首址

将其插入可利用空间表中。回

其伙伴地址为

512、;大小为的空闲块。因为