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

2017年河北工程大学数据结构复试仿真模拟三套题

  摘要

一、应用题

1. 某网络中的路由器运行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

2. 三个进程P1、P2, P3互斥使用一个包含N P1每次用produce (N >0)个单元的缓冲区。( )生成一个正整数并用put ( )送入缓冲区某一空单元中;P2每次用getodd ( )从该缓冲区中取出一个奇数并用countodd ( )统计奇数个数;P3每次用geteven ( )从该缓冲区中取出一个偶数并用counteven ( )统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义信号量的含义。要求用伪代码描述。

【答案】定义信号量S1控制P1与P2之间的同步;S2控制P1与P3之间的同步;empty 控制生产者与消费者之间的同步;mutex 控制进程间互斥使用缓冲区,程序如下: