2017年中国民航大学数据结构复试实战预测五套卷
● 摘要
一、应用题
1. 在
树和
树中查找关键字时,有什么不同?
树的非终端结点是索引部分,其查找从根开始,从根往下查到关键
. 树还可以在最下层从最小关
【答案】在树中查找关键字从根结点开始,从根往下查找结点,然后在结点内查找关键字,得出查找成功与否的结论。
字后,要继续查到最下层结点,得到查找成功与否的结论。另外,键字开始,从左往右进行顺序查找,B-树则不能作顺序查找。
2. 用单链表保存m 个整数,节点的结构为(data , link ), 且点而删除其余绝对值相等的节点。
例如若给定的单链表head 如下
删除节点后的head 为
要求
(1)给出算法的基本思想 (2)使用c 或
语言,给出单链表节点的数据类型定义。
语言描述算法,关键之处给出注释。
(3)根据设计思想,采用c 或【答案】(1)算法思想:
定义一个大小为n 的布尔数组flag ,初始时所有的元素都赋值为false , 用来标识遍历过程中是否出现元素绝对值为flag 的节点。然后遍历链表,遍历过程中,每一个当前结点data 域的绝对值,则将flag 位置为真(true )所对应的flag 位:若为真,则删除该结点;若为假(false )。
(2)节点的数据结构定义如下:
(3)
全局数组标志节点的绝对值是否出现过
第 2 页,共 31 页
(n 为正整数)。现要求
设计一个时间复杂度尽可能高效地算法,对于链表中绝对值相等的节点,仅保留第一次出现的节
(4)说明所涉及算法的时间复杂度和空间复杂度。
则删除该节点
如果此绝对值已经在节点值的绝对值中出现过
否则,将flag 中对应的位置置为true ,并将指针指向下一个元素
,申请大小(4)只遍历一次链表,所以时间复杂度为0 (m ) (m 为单链表中元素的个数)
为n 的数组,所以空间复杂度为0 (n ) (n 为节点绝对值的最大值)。
3. 请写出应填入下列叙述中( )内的正确答案。
某一工程作业的网络图如图1所示,其中箭头表示作业,箭头边的数字表示完成作业所需的天 数。箭头前后的圆圈表示事件,圆圈中的数字表示事件的编号。用事件编号的序列(例如0-2-7-9-11)表示进行作业的路径。
完成此工程的关键路径是(A )完成此工程所需的最少天数为(B )天,此工程中具有最大充,充裕天数是(D )裕天数的事件是(C )。关键路径上的事件的充裕天数是(E )。
图1
【答案】A. 0-2-6-9-11; B. 20; C.事件顶点1、5和7各充裕两天;D. 4天;E. 0
4. KMP 算法(字符串匹配算法)较Brute (朴素的字符串匹配)算法有哪些改进?
【答案】朴素的模式匹配度达到
时,KMP 算法的优点更为突出。
第 3 页,共 31 页
时间复杂度是KMP 算法有一定改进,时间复杂
主要优点是主串指针不回溯。当主串很大不能一次读入内存且经常发生部分匹配
5. (1)对于有向无环图,叙述求拓扑有序序列的步骤;
(2)对于图1,写出它的四个不同的拓扑有序序列。
图1
【答案】(1)对有向图,求拓扑序列步骤为:
1)在有向图中选一个没有前驱(即入度为0)的顶点并输出。 2)在图中删除该顶点及所有以它为尾的弧。
3)重复1)和2), 直至全部顶点输出,这时拓扑排序完成;否则,图中存在环,拓扑排序失败。
(2)拓扑有序序列如图2:
图2 拓扑有序序列
6. 某文件系统为一级目录结构,文件的数据一次性写入磁盘,已写入的文件不可修改,但可多次 创建新文件。请回答如下问题。
(1)在连续、链式、索引三种文件的数据块组织方式中,哪种更合适? 要求说明理由。为定位文件数据块。需要在FCB 中设计哪些相关描述字段?
(2)为快速找到文件,对于FCB ,是集中存储好,还是与对应的文件数据块连续存储好? 要求说明理由。
【答案】根据题目所给条件,文件系统为一级目录结构,文件的数据一次性写入磁盘,已写
第 4 页,共 31 页
相关内容
相关标签