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、;大小为的空闲块。因为