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 页