2017年西安电子科技大学数据结构考研复试核心题库
● 摘要
一、应用题
1. 设G=(V , E)以邻接表存储,如图所示,试画出图1的深度优先生成树和广度优先生成树。
图1
【答案】设从顶点1开始遍历,则深度优先生成树如图2所示,广度优先生成树如图3所示:
图2 图3
2. 设度为m 的树采用多重链表存储,毎个结点有m+1个域,其中有1个数据域,m 个指向孩子的指针。 则空指针的数目是多少?说明这种存储方式的利弊。
【答案】(1)空指针数目:n (n>0)个结点的m 度树共有nm 个链域,除根结点外,每个结点均有一个指针所指,故该树的空链域有nm-(n-1)=n(m-l )+1个。
(2)利弊:这种存储结构统一,便于处理但空链域造成存储效率低。
3. 请回答下列关于堆(Heap )的一些问题:
(1)堆的存储表示是顺序的还是链接的?
(2)设有一个最小堆,即堆中任意结点的关键码均不大于它的左子女和右子女的关键码。其具有最大值的元素可能在什么地方?
(3)对n 个元素进行初始建堆的过程中,最多做多少次数据比较(不用大0表示法)?
【答案】(1)堆的存储是顺序的。
(2)最大值元素一定是叶结点,在最下两层上。
(3)在建含有n 个元素、深度为h 的堆时,其比较次数不超过4n ,推导如下:
由于第i 层上的结点数至多是以它为根的二叉树的深度为则调用次筛选算法时总共进行的关键字比较次数不超过下式之值:
4. KMP 算法(字符串匹配算法)较Brute (朴素的字符串匹配)算法有哪些改进?
【答案】朴素的模式匹配度达到时间复杂度是KMP 算法有一定改进,时间复杂
主要优点是主串指针不回溯。当主串很大不能一次读入内存且经常发生部分匹配时,KMP 算法的优点更为突出。
5. 某网络中的路由器运行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 算法找最短路径步骤如下表所示: