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

2017年武汉科技大学数据结构(C语言版)复试仿真模拟三套题

  摘要

一、应用题

1. 三维数组

的存储首地址。

【答案】数组占的存储字节

的存储地

址的每个元素的长度为4个字节,试问该数组要占多少个字节的存储空间? 如果数组元素以行优先的顺序存储,设第一个元素的首地址是100,试求元素

2. 设输入序列为2, 3, 4, 5, 6, 利用一个栈能得到序列2, 5, 3, 4, 6吗? 栈可以用单链表实现吗?

【答案】不能得到序列2, 5, 3, 4, 6。因为根据输入序列,2进栈之后,2出找,3, 4, 5依次进栈。5出栈,此时栈中剩下3, 4。因为4在栈顶,所以4应该比3先出栈,不能得到提供的序列。栈可以用单链表实现,这就是链栈。由于栈只在栈顶操作,所以链栈通常不设头结点。

3.

设与记录

对应的关键字分别是

如果存在

使得

成立,试证明经过一趟起泡后,一定有记录与

值。由题假设知中包括在之前且则即说明和进行交换。 之前全部记录(其的关键字一定且【答案】起泡排序思想是相邻两个记录的关键字比较,若反序则交换,一趟排序完成得到极是反序;设对于)中关键字最大为,故经过起泡排序前i-2次比较后,

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

4. 将关键字序列(7, 8, 30,11,18, 9,14)散列存储到散列表中,散列表的存储空间是一个下标从0开始的一维数组。散列函数是:

列法,要求装填(载)因子为0.7。

(1)请画出所构造的散列表。

(2)分别计算等概率情况下查找成功和查找不成功的平均查找长度。

【答案】(1)要求装填因子为0.7, 数组的长度应该为7/0.7=10, 数组下标为0〜9。各关键字的散列函数值如下表:

采用线性探测法再散列法处理冲突,所构造的散列表为:

(2)查找成功时,在等概率情况下,查找表中每个元素的概率是相等的,因此是根据表中元素个数来计算平均查找长度,各关键字的比较次数如下表所示:

第 2 页,共 19 页 处理冲突采用线性探测再散

故查找成功的平均查找长度为(1+1+1+1+3+3+2)/7=12/7。

在不成功的情况下,由于任意关键字key , H (key )的值只能是0〜6之间,H (key )为0需要比较3次,H (key )为1需要比较2次,H (key )为2需要比较1次,H (key )为3需要比较2次,H (key )为4需要比较1次,H (key )为5需要比较5次,H (key )为6需要比较4次,共7种情况,如下表所示:

所以,在等概率下,查找失败的平均查找长度为:(3+2+1+2+1+5+4)/7=18/7。

5. 假定有下列,矩阵(n 为奇数)

如果用一维数组B 按行主次序存储A 的非零元素,问:

(1)A 中非零元素的行下标与列下标的关系;

(2)给出A 中非零元素的下标

位在B 中的位置公式。

【答案】(1)主对角线上元素的坐标是i=j,副对角线上元素的坐标i 和j 有

所以A 中非零元素的行下标和列下标的关系是或 的关系,与B 中的下标R 的关系; 给出利用的下标定(3)假定矩阵中每个元素占一个存储单元且B 的起始地址为(2)非零元素分布在两条主、副对角线上,除对角线相交处一个元素(下称“中心元素”)外,其余每行都有两个元素。主对角线上的元素,在向量B 中存储的下标

副对角线上的元素,在中心元素前,在向量B

中存储的下标是

在中心元素后,其下标如下:

(3)在B 中的位置如下:

第 3 页,共 19 页

6. 某请求分页系统的局部页面置换策略如下:系统从0时刻开始扫描,每隔5个时间单位扫描

,本轮没有被访问过的页框将被系统回收,并放入到空闲页框链一轮驻留集(扫描时间忽略不计)

尾,其中内容在下一次被分配之前不被清空。当发生缺页时,如果该页曾被使用过且还在空闲页框链表中,则重新放回进程的驻留集中;否则,从空闲页框链表头部取出一个页框。假设不考虑其他进程的影响和系统开销,初始时进程驻留集为空。目前系统空闲页框链表中页框号依次为32、15、21、41。进程

(1)访问

(2)访问

(3)访问

【答案】

(1)页框号为21。因为起始驻留集为空,而0页对应的页框为空闲链表中的第三个空闲页框,其对应的页框号为21。

(2)页框号为32。理由:因11>10故发生第三轮扫描,页号为1、3的页框32、15在第二轮已处于空闲页框链表中,此刻1页又被重新访问,因此应被重新放回到驻留集中。其页框号为32。

(3)页框号为41。理由:因为第2页从来没有被访问过,它不在驻留集中,因此从空闲页框链表中取出链表头的页框41,页框号为41。

(4)适合。理由:如果程序的时间局部性越好,从空闲页框链表中重新取回的机会越大,该策略的优势越明显。

7. 设阶稀疏矩阵A 有t 个非零元素,其三元组表示为

素的个数t 达到什么程度时用

,共占用三元组表

元组)

时,用的表示A 才有意义? 个存储单元,用二维数组存储时占用 个单元,

只有当P 依次访问的<虚拟页号,访问时刻>是

:请回答下列问题。 时,对应的页框号是什么? 时,对应的页框号是什么? 说明理由。 . 时,对应的页框号是什么? 说明理由。 (4)该策略是否适合于时间局部性好的程序? 说明理由。 试问:非零元【答案】稀疏矩阵A 有t 个非零元素,加上行数mu 、列数皿和非零元素个数tu (也算一个三表示A 才有意义。解不等式得

8. 设有一棵算术表达式树,用什么方法可以对该树所表示的表达式求值?

【答案】有两种方法,具体如下:

(1)对该算术表达式(二叉树> 进行后序遍历. 得到表达式的后序遍历序列,再按后缀表达式求值。

(2)递归求出左子树表达式的值,再递归求出右子树表达式的值,最后按根结点运算符(+、

一、*、/等) 进行求值。

二、算法设计题

第 4 页,共 19 页