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

2017年南京师范大学数据结构(同等学力加试)考研复试核心题库

  摘要

一、应用题

1. 试叙述动态存储分配伙伴系统的基本思想,它和边界标识法不同点是什么?

【答案】(1)动态存储分配伙伴系统的基本思想

在伙伴系统中,无论占用块或空闲块,其大小均为(k 为大于等于0的正整数)。若内存容

量为

则空闲块大小只能是

由同一大块分裂而得的两个小块互称“伙伴空

(若

如内存大小为

间”或

的块分裂成两个大小为的块。只有两个“伙伴空间”才能合并成一个大(若

(2)和边界标识法的不同

边界标识法在每块的首尾均有“占用”/“空闲”标志,空闲块合并方便。伙伴系统算法简单、速度快,但只有互为伙伴的两个空闲块才可合并,因而易产生虽空闲但不能归并的碎片。

2. 设目标为 模式为

(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)

3. 已知n 阶下三角矩阵A (即当

时,有

,按照压缩存储的思想,可以将其主对角线以)

)。

空间。起始地址为P ,

大小为的内存块,其伙伴的起始地址为:

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

【答案】2

阶下三角矩阵元素第1列到第

列是梯形,元素数为

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

个元素,所以n

阶下三角矩阵A 按列存储,其元素在一维数组B 中的存储位置k 与i 和j 的关系为:

4. 已知世界六大城市为:北京(Pe )、纽约(N )、巴黎(Pa )、伦敦(L )、东京(T )、墨西哥,下表给定了这六 大城市之间的交通里程:

(M )

(1)画出这六大城市的交通网络图; (2)画出该图的邻接表表示法;

(3)画出该图按权值递增的顺序来构造的最小(代价)生成树。 【答案】(1)这六大城市的交通网络图如图1所示:

图1

(2)该图的邻接表表示法如图2所示:

图2

(3)最小生成树有6个顶点与条边:V (G )={Pe,N ,Pa ,L , T,M}

E (G )=( {(L , Pa, 3), (Pe , T, 21), (M , N, 32), (L , N, 55), (L , Pe, 81)}

5. 将下列出三棵树组成的森林转换为二叉树(只要求给出转换结果)。

图1

【答案】森林转换为二叉树分以下三步:

(1)连线(将兄弟结点相连,各树的根看作兄弟)。

(2)切线(保留最左边子女为独生子女,将其他子女分支切掉)。 (3)旋转(以最左边树的根为轴. 顺时针向下旋转45度)。 所以由上面三棵树转换得到的二叉树如图2所示:

图2

6. 给出模式串

在KMP 算法中的next 和nextval 数组。

【答案】模式串的next 函数定义如下:

根据此定义,

可求解模式串

的next 和nextval 值如下: