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

2017年西南林业大学数据结构(同等学力加试)考研复试核心题库

  摘要

一、应用题

1. 假定采用带头结点的单链表保存单词,当两个单词有相同的后缀时,则可共享相同的后缀存储空间。例如,“loading ”和“being ”的存储映像如图所示。

图 存储映像7K 意图

设str1和str2分别指向两个单词所在单链表的头结点,链表结点结构为符i 所在结点的位置p )。要求:

(1)给出算法的基本设计思想。 (2)根据设计思想,采用C 或【答案】

(1)算法的基本设计思想:

①分别求出strl 和str2所指的两个链表的长度m 和n ;

②将两个链表以表尾对齐:令指针p 、q 分别指向strl 和str2的头结点,若表中的第

个结点;若

则使q 指向链表中的第

表尾的长度相等。

③反复将指针p 和q 同步向后移动,并判断它们是否指向同一结点。若p 和q 指向同一结点,则该点即为所 求的共同后缀的起始位置。

(2)用C 语言算法描述如下:

两个指针同步向后移动

第 2 页,共 36 页

请设计一

个时间上尽可能高效的算法,找出由strl 和str2所指的两个链表共同后缀的起始位置(如图中字

或JA V A 语言描述算法,关键之处给出注释。

(3)说明你所设计算法的时间复杂度。

则使p 指向链

个结点,即使指针p 和q 所指的结点到

返回共同C 缀的起始点

(3)参考答案的时间复杂度为:或其中m 、n 分别为两个链表的

长度。

2. 设有正文AADBAACACCDACACAAD ,字符集为A , B , C , D , 设计一套二进制编码,使得上述正文的编码最短。

A :1, B :000,C :01,D :001。 【答案】字符A , B , C , D 出现的次数为9, 1, 5, 3。其哈夫曼编码如下:

3. 如果两个串含有相等的字符,能否说它们相等?

【答案】仅从两串含有相等的字符,不能判定两串是否相等,两串相等的充分必要条件是两串长度相等且对应位置上的字符相同(即两串串值相等)。

4. 已知有6个顶点(顶点编号为0--5)的有向带权图G , 其邻接矩阵A 为上三角矩阵,按行为主序(行优先)保存在如下的一维数组中。

要求:

(1)写出图G 的邻接矩阵A 。 (2)画出有向带权图G 。

(3)求图G 的关键路径,并计算该关键路径的长度。

【答案】(1)由题可以画出待定上三角矩阵的结构图如下(图中? 为待定元素):

可以看出,第一行至第五行主对角线上方的元素分别为5, 4, 3, 2, 1个,由此可以画出压缩存储数组中的元素所属行的情况,如下图所示:

将各元素填入各行即得邻接矩阵:

(2)根据第一步所得矩阵A 容易做出有向带权图G , 如下:

第 3 页,共 36 页

(3)下图中粗线箭头所标识的4个活动组成图G 的关键路径。

由上图容易求得图的关键路径长度为:4+5+4+3 = 16。

5. 解答问题。设有数据逻辑结构为:

(1)画出这个逻辑结构的图示。

(2)相对于关系R ,指出所有的开始结点和终端结点。 (3)分别对关系R 中的开始结点,举出一个拓扑序列的例子。 (4)分别画出该逻辑结构的正向邻接表和逆向邻接表。 【答案】 ⑴如图1所示:

图1

(2)开始结点(入度为0):(3)拓扑序列:

规则:开始结点为

之后,若遇多个入度为0的顶点,按顶点编号顺序选择。

(4)正向邻接表如图2所示,逆向邻接表如图3所示:

终端结点(出度为0):

第 4 页,共 36 页