2017年浙江农林大学数据结构考研复试核心题库
● 摘要
一、应用题
1. 为什么在倒排文件组织中,实际记录中的关键字域可删除以节约空间? 而在多重表结构中这样做为什么要牺牲性能?
【答案】因倒排文件组织中,倒排表有关键字值及同一关键字值的记录的所有物理记录号,可方便地查询具有同一关键字值的所有记录;而多重表文件中次关键字索引结构不同,删除关键字域后查询性能受到影响。
2. 在模试匹配KMP 算法中所用失败函数的定义中,为何要求真子串?且为最大真子串?
【答案】失败函数(即next )的值只取决于模式串自身,若第j 个字符与主串第i 个字符失配时,假定主串不回溯,模式串用第k (即next[j]个字符与第i 个相比,有
为了
不因模式串右移与主串第i 个字符比较而丢失可能的匹配,对于上式中可能存在的多个k 值,应取其中最大的一个。这样,因j-k 最小,即模式串向右滑动的位数最小,避免因右移造成可能匹配的丢失。
3. 某网络中的路由器运行0SPF 路由协议,如表是路由器R1维护的主要链路状态信息(LSI ),如图是根据表及R1的接口名构造出来的网络拓扑。
表R1所维护的
LSI
两头匹配的
图R1构造的网络拓扑
请回答下列问题。
(1)本题中的网络可抽象为数据结构中的哪种逻辑结构?
(2)针对表中的内容,设计合理的链式存储结构,以保存表中的链路状态信息(LSI )。要求给出链式存储结构的数据类型定义,并画出对应表的链式存储结构示意图(示意图中可仅以ID 标识节点)。
(3)按照迪杰斯特拉(Dijikstra )算法的策略,依次给出R1到达图中子网192.1.x.x 的最短路径及费用。
【答案】(1)图
(2)使用图的邻接表存储结构进行存储,数据类型定义如下:
该弧指向路由器的位置,0为没有
该弧指向的网络的网络前缀,空为没有
路由的基础IP ,当adjvex 不为0才有效
指向下一条弧的指针
连接的权值
表结点
第一个结点地址
头节点
链式存储结构示意图如下图所示:
(3
)目标网络
记为
记为
记为
使用dijkstra 算法找最短路径步骤如下表所示:
所以R1到达子网192.1.1.0/24最短路径为:R1到达子网R1到达子网R1到达子网
的最短路径为
:的最短路径为
:的最短路径为
子网,费用为1 子网,费用为3 子网,费用为4 子网,费用为8