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

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

  摘要

一、应用题

1. 设内存中可利用空间已连成一个单链表,对用户的存储空间需求,一般有哪三种分配策略?

【答案】(1)首次适配法

从链表头指针开始查找,找到第一个大于等于所需空间的结点即分配。首次适配法适合事先不知道请求分配和释放信息的情况,分配时需查询,释放时插在表头。

(2)最佳适配法

链表结点大小增序排列,找到第一个大于等于所需空间的结点即分配。最佳适配法适用于请求分配内存大小范围较宽的系统,释放时容易产生存储量很小难以利用的内存碎片,同时保留那些很大的内存块以备将来可能发生的大内存量的需求,分配与回收均需查询。

(3)最差适配法

链表结点大小逆序排列,总从第一个结点开始分配,将分配后结点所剩空间插入到链表适当位置。最差适配法适合请求分配内存大小范围较窄的系统,分配时不查询,回收时查询,以便插入适当位置。

2. 某文件系统空间的最大容量为4TB

以磁盘块为基本分配单位,磁盘块大小为1KB 。

文件控制块(FCB )包含一个512B 的索引表区。请回答下列问题。

(1)假设索引表区仅采用直接索引结构,索引表区存放文件占用的磁盘块号。索引表项中块号最少占多少字节? 可支持的单个文件最大长度是多少字节?

(2)假设索引表区采用如下结构:第0〜7字节采用<起始块号,块数>格式表示文件创建时预分配的连续存储空间,其中起始块号占6B ,块数占2B ; 剩余504字节采用直接索引结构,一个索引项占6B ,则可支持的单个文件最大长度是多少字节? 为了使单个文件的长度达到最大,请指出起始块号和块数分别所占字节数的合理 值并说明理由。

【答案】

(1)文件系统存储空间共有块数可存放

(2)

为表示

个块号,索引表项占

512B

个索引项,每个索引项对应一个磁盘块,故最大文件长度:

块号占6字节,块数占2字节的情形下,最大文件长度

理由:

合理的起始块号和块数所占字节数分别为

块数占4B 或以上,就可表示4TB 大小的文件长度,达到文件系统的空间上限。

3. S 是字符数组

,中存放的是该字符串的有效长度,

假设中字符串的内容为

说明下列程序的功能及执行结果。

【答案】本程序的功能是求字符串的nextval 函数,程序执行结果是0110132。

4. 将算术表达式((a+b)+c*(d+e)+f)*(g+h)转化为二叉树。

【答案】该算术表达式转化的二叉树如图所示。

5. 在某程序中,有两个栈共享一个一维数组空间的栈底。

(1)对栈1、栈2, 试分别写出(元素x )入栈的主要语句和出栈的主要语句。 (2)对栈1、栈2, 试分别写出栈满、栈空的条件。 【答案】(1)入栈主要语句

出栈主要语句

分别是两个栈

(2)

6. 对一个有t 个非零元素的矩阵,用的数组来表示,其中第0行的三个元素分

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

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

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

时间复杂度为

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

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

7.

设与记录

对应的关键字分别是

成立,试证明经过一趟起泡后,一定有记录与值。由题假设知中包括

之前且

即说明

如果存在

进行交换。

之前全部记录

(其

的关键字一定和

使得

【答案】起泡排序思想是相邻两个记录的关键字比较,若反序则交换,一趟排序完成得到极

是反序;设对于

)中关键字最大为

,故经过起泡排序前i-2次比较后,

为又因故和Rf 为反序,由此可知和必定交换,证毕。

8. 在采用线性探测法处理冲突的哈希表中,所有同义词在表中是否一定相邻?

【答案】不一定相邻。哈希地址为同义词,都争夺哈希地址i 。

的关键字,和为解决冲突形成的探测序列f 的

二、算法设计题

9. 给定

矩阵

并设

设计一算法判定x 的值是否在A 中,

要求时间复杂度为

【答案】算法如下: