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

2017年西南大学数据结构(同等学力加试)复试仿真模拟三套题

  摘要

一、应用题

1. 设目标为模式为

(1)计算模式p 的nextval 函数值;

(2)不写出算法,只画出利用KMP 算法进行模式匹配时每一趟的匹配过程。

【答案】(1)P 的nextval 函数值为0110132(P 的next 函数值为0111232)。

(2)利用KMP (改进的nextval )算法,每趟匹配过程如下:

第一趟匹配:

abcab (i=5, j=5)

第二趟匹配:

abc (i=7,j=3)

第三趟匹配:

a (i=7,j=l)

第四趟匹配:

(成功)abcabaa (i=15,j=8)

2. 已知n 阶下三角矩阵A (即当时,有,按照压缩存储的思想,可以将其主对角线以)

下所有元素(包括主对角线上元素)依次存放于一维数组B 中,请写出从第一列开始采用列序为主序分配方式时在B 中确定元素的存放位置的公式。

【答案】2

阶下三角矩阵元素

第1列到第列是梯形,元素数为第1列有n 个元素,第j 列有而在第j 列上的位置是为

3. 已知两个各包含IV 和M 个记录的排好序的文件能在时间内合并为一个包含个个元素,所以n 阶下三角矩阵A 按列存储,其元素在一维数组B 中的存储位置k 与i 和j 的关系为:

记录的排好序的文件。当有多于两个排好序的文件要被合并在一起时,只需重复成对地合并便可完成。合并的步骤不同,所需花费的记录移动次数也不同。现有文件,FI ,F2,F3,F4,F5,各有记录数为20,30,10,5和30,试找出记录移动次数最少的合并步骤。

,【答案】类似最优二叉树(哈夫曼树)可先合并含较少记录的文件,后合并较多记录的文件,

使移动次数减少,如图所示的哈夫曼树。

4. 假定对有序表:(3,4,5,7,24,30,42,54,63,72,87,95)进行折半查找,试回答下列问题:

(1)画出描述折半查找过程的判定树;

(2)若查找元素54,需依次与哪些元素比较?

(3)若查找元素90,需依次与哪些元素比较?

(4)假定每个元素的查找概率相等,求查找成功时的平均查找长度。

【答案】(1)判定树如图所示:

图 判定树

(2)若查找元素54,需依次和元素30、63、42、54比较,查找成功。

(3)若查找元素90,需依次和元素30、63、87、95比较,查找失败。

(4)

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

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

6. 在模试匹配KMP 算法中所用失败函数的定义中,为何要求

真子串?且为最大真子串? 两头匹配的

【答案】失败函数(即next )的值只取决于模式串自身,若第j 个字符与主串第i 个字符失配时,假定主串不回溯,模式串用第k (即next[j]个字符与第i 个相比,有为了不因模式串右移与主串第i 个字符比较而丢失可能的匹配,对于上式中可能存在的多个k 值,应取其中最大的一个。这样,因j-k 最小,即模式串向右滑动的位数最小,避免因右移造成可能匹配的丢失。

7. 某计算机字长16位,采用16位定长指令字结构,部分数据通路结构如下图所示,图中所有控制信号为1时表示有效,为0时表示无效,例如控制信号MDRinE 为1表示允许数据从DB 打入MDR ,MDRin 为1表示允许数据从内总线打入MDR 。假设MAR 的输出一直处于使能状态。加法指令“ADD (Rl ), R0”的功能为(R0)+((R1))-(R1), 即将R0中的数据与R1的内容所指主存单元的数据相加,并将结果送入R1的内容所指主存单元中保存。

下表给出了上述指令取指和译码阶段每个节拍(时钟周期)的功能和有效控制信号,请按表中描述方式用表格列出指令执行阶段每个节拍的功能和有效控制信号。