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

2017年赣南师范学院数据结构(同等学力加试)复试仿真模拟三套题

  摘要

一、应用题

1. 组织待检索文件的倒排表的优点是什么?

【答案】倒排表作为索引的优点是索引记录快,因为从次关键字值直接找到各相关记录的物理记录号,倒排因此而得名(因通常的查询是从关键字查到记录)。在插入和删除记录时,倒排表随之修改,倒排表中具有相同次关键字的记录号是有序的。

2. 请回答下列关于堆(Heap )的一些问题:

(1)堆的存储表示是顺序的还是链接的?

(2)设有一个最小堆,即堆中任意结点的关键码均不大于它的左子女和右子女的关键码。其具有最大值的元素可能在什么地方?

(3)对n 个元素进行初始建堆的过程中,最多做多少次数据比较(不用大0表示法)? 【答案】(1)堆的存储是顺序的。

(2)最大值元素一定是叶结点,在最下两层上。

(3)在建含有n 个元素、深度为h 的堆时,其比较次数不超过4n ,推导如下: 由于第i 层上的结点数至多是

以它为根的二叉树的深度为

则调用

次筛选算

法时总共进行的关键字比较次数不超过下式之值:

3. 数据类型和抽象数据类型是如何定义的? 二者有何相同和不同之处? 抽象数据类型的主要特点是什么? 使用抽象数据类型的主要好处是什么?

【答案】(1)数据类型的定义

数据类型是程序设计语言中的一个概念,它是一个值的集合和操作的集合。如c 语言中的整,其操作有加、减、乘、除、型、实型、字符型等。整型值的范围(对具体机器都应有整数范围)求余等。实际上数据类型是厂家提供给用户的已实现了的数据结构。

(2)抽象数据类型的定义

“抽象数据类型(ADT )”指一个数学模型及定义在该模型上的一组操作。“抽象”的意义在于数据类型的数学抽象特性。抽象数据类型的定义仅取决于它的逻辑特性,而与其在计算机内部 如何表示和实现无关。无论其内部结构如何变化,只要它的数学特性不变就不影响它的外部使用。

(3)两者的不同

抽象数据类型和数据类型实质上是一个概念。此外,抽象数据类型的范围更广,它已不再局限于机器已定义和实现的数据类型,还包括用户在设计软件系统时自行定义的数据类型。

(4)抽象数据类型的主要特点

,而是向“科学”迈进了一步。 抽象数据类型的出现使程序设计不再是“艺术”(5)使用抽象数据类型的好处

使用抽象数据类型定义的软件模块含定义、表示和实现三部分,封装在一起,对用户透明(提,而不必了解实现细节。 供接口)

4. 某16位计算机中,带符号整数用补码表示,数据Cache 和指令Cache 分离。题表给出了指令系统中部分指令格式,其中Rs 和Rd 表示寄存器,mem 表示存储单元地址,(X )表示寄存器X 或存储单元X 的内容。

表 指令系统中部分指令格式

该计算机采用5段流水方式执行指令,各流水段分别是取指(IF )、译码/读寄存器(ID )、执行/计算有效地址(EX )、访问存储器(M )和结果写回寄存器(WB ), 流水线采用“按序发射,按序完成”方式,没有采用转发技术处理数据相关,并且同一个寄存器的读和写操作不能在同一个时钟周期内进行。请回答下列问题。

(1)若int 型变量x 的值为-513, 存放在寄存器R1中,则执行指令“SHR R1”后,R1的内容是多少?(用十六进制表示)

(2)若某个时间段中,有连续的4条指令进入流水线,在其执行过程中没有发生任何阻塞,则执行这4条指令所需的时钟周期数为多少?

(3)若高级语言程序中某赋值语句为址分别表示为

和b 均为int 型变量,它们的存储单元地

该语句对应的指令序列及其在指令流水线中的执行过程如题图所示。

则这4条指令执行过程中,的ID 段和的IF 段被阻塞的原因各是什么?

图 指令序列及其执行过程示意图

(4)若高级语言程序中某赋值语句为储单元地址分别表示为

【答案】 (1)x 的机器码为1110 1111 1111B, 即指令执行后

(2)至少需要

x 和a 均为unsigned int 类型变量,它们的存

则执行这条语句至少需要多少个时钟周期? 要求模仿题图画出这

条语句对应的指令序列及其在流水线中的执行过程示意图。

即指令执行前(Rl ) =FDFFH, 右移lwei 后为1111

个时钟周期数。

(3)的ID 段被阻塞的原因:因为

与和都存在数据相关,需等到和将结果写回寄存器后,才能读寄存器内容,所以的ID 段被阻塞。

的IF 段被阻塞的原因:因为14的前一条指令在ID 段被阻塞,所以,的IF 段被阻塞。(4)

对应的指令序列为:

这5条指令在流水线中的执行过程如下图所示,执行

语句最少需要17个时钟周期。

5. 设二叉树BT 的存储结构如表:

表 二叉树BT 的存储结构

其中BT 为树根结点的指针,其值为6, Lchild 、Rchild 分別为结点的左、右孩子指针域data 为结点的数据域。试完成下列各题:

(1)画出二叉树BT 逻辑结构;

(2)写出按前序、中序、后序遍历该二叉树所得到的结点序列: (3)画出二叉树的后序线索树。

【答案】(1)二叉树的逻辑结构如图1所示: