2017年北京工业大学北京未来网络科技创新中心数据结构复试仿真模拟三套题
● 摘要
一、应用题
1. 队列可以用循环单链表来实现,故可以只设置一个头指针或者只设置一个尾指针。请你分析对于循环单链表实现的队列,用哪种方案更合适。
【答案】循环单链表若只设头指针,则出队操作时间复杂度是
是若只设尾指针,则出队和入队操作时间复杂度都是而如对操作时间复杂度
因此,用循环单链表来实现队列,设置一个尾指针更合适。
2. 带权图(权值非负,表示边连接的两顶点间的距离)的最短路径问题是找出从初始顶点到目标顶点之间的一条最短路径,假设从初始顶点到目标顶点之间存在路径,现有一种解决该问题的方法:
①该最短路径初始时仅包含初始顶点,令当前顶点为初始顶点; ②选择离最近且尚未在最短路径中的顶点V ,加入到最短路径中,修改当前顶点
请证明之;否则请举例说明。
【答案】题目中方法不一定能(或不能)求得最短路径。举例说明:
图(a )
图(b )
图(a )中,假设初始顶点1到目标顶点4之间有一条边,权值x=2。显然图(a )中这顶点1和顶点4之间的最短路径长度为2。若按照题目中给定的方法找到的路径为初始顶点1经过中间结点2、3到目标顶点4, 即初始顶
点
显然, 一目标顶点4, 所经过的边的权值分别
为 ③重复步骤②,直到是目标顶点时为止。请问上述方法能否求得最短路径? 若该方法可行,
因此按照题目中给定的方法所求得的路径并不是这两个顶点之间的最短路径。
图(b )中,假设初始顶点为1、目标顶点为4, 欲求从顶点1到顶点4之间的最短路径。显然,按照题目中给定的方法无法求出顶点1到顶点4的路径,而事实上顶点1到顶点4的最短路径为1到4。
3. 试比较顺序文件、索引非顺序文件、索引顺序文件、哈希文件的存储代价,检索、插入、删除记录时的优点和缺点。
【答案】(1)顺序文件只能顺序查找,优点是批量检索速度快,不适于单个记录的检索。顺序文件不能像顺序表那样插入、删除和修改,因文件中的记录不能象向量空间中的元素那样“移动”,只能通过复制整个文件实现上述操作。
(2)索引非顺序文件适合随机存取,不适合顺序存取,因主关键字未排序,若顺序存取会引起磁头频繁移动。索引顺序文件是最常用的文件组织,因主文件有序,既可顺序存取也可随机存取。索引非顺序文件是稠密索引,可以“预查找”,索引顺序文件是稀疏索引,不能“预查找”,但由于索引占空间较少,管理要求低,提高了索引的查找速度。
(3)散列文件也称直接存取文件,根据关键字的哈希函数值和处理冲突的方法,将记录散列到外存上。这种文件组织只适用于像磁盘那样的直接存取设备,其优点是文件随机存放,记录不必排序,插入、删除方便,存取速度快,无需索引区,节省存储空间。缺点是散列文件不能顺序存取,且只限于简单查询。经多次插入、删除后,文件结构不合理,需重组文件,这很费时。
4. 假定某计算机的CPU 主频为80MHz , CPI为4, 并且平均每条指令访存1.5次,主存与Cache 之间交换的块大小为168, Cache的命中率为存储器总线宽度为32位。请回答下列问题。
(1)该计算机的MIPS 数是多少? 平均每秒Cache 缺失的次数是多少? 在不考虑DMA 传送的情况下,主存带宽至少达到多少才能满足CPU 的访存要求?
(2)假定在Cache 缺失的情况下访问主存时,存在
期挪用方式,磁盘接口的数据缓冲寄存器为32位,则磁盘的缺页率,则CPU 平均每秒产接口平均每秒发出的DMA 生多少次缺页异常? 若页面大小为4KB ,每次缺页都需要访问磁盘,访问磁盘时DMA 传送采用周请求次数至少是多少?
(3)CPU 和DMA 控制器同时要求使用存储器总线时,哪个优先级更高? 为什么?
(4)为了提高性能,主存采用4体交叉存储模式,工作时每
每个体的存储周期为50ns ,则该主存能提供的最大带宽是多少?
【答案】
(1)平均每秒CPU 执行的指令数为:
平均每秒Cache 缺失的次数为:
为
:
足CPU 的访存要求。
(2)平均每秒钟“缺页”异常次数为:
故平均每秒磁盘DMA 请求的次数至少为:
请求得不到及时响应,传输数据可能会丢失。
个存储周期启动一个体。若故MIPS 数为20; =300000; 才能满当Cache 缺失时,CPU 访问主存,主存与Cache 之间以块为单位传送数据,此时,主存带宽在不考虑DMA 传输的情况下,主存带宽至少达到 因为存储器总线宽度为32位,所以,每传送32位数据,磁盘控制器发出一次DMA 请求,CPU 和DMA 控制器同时要求使用存储器总线时,DMA 请求优先级更高;因为若DMA (3)
(4)4体交叉存储模式能提供的最大带宽为:
5. 某计算机字长16位,主存地址空间大小为128KB , 按字编址,采用单字长指令格式,指令各字段定义如下:
源操作数目的操作数
转移指令采用相对寻址方式,相对偏移量用补码表示,寻址方式定义如下:
注:(X )表示存储器地址X 或寄存器X 的内容。请回答下列问题:
(1)该指令系统最多可有多少条指令? 该计算机最多有多少个通用寄存器? 存储器地址寄存器(MAR )和存储器数据寄存器(MDR )至少各需要多少位?
(2)转移指令的目标地址范围是多少?
(3)若操作码0010B 表示加法操作(助记符为add ), 寄存器R4和R5的编号分别为100B 和101B ,R4的内容为1234H ,R5的内容为5678H , 地址1234H 的内容为5678H ,地址5678H 中的内容为1234H ,则汇编语句
改变后的内容是什么?
【答案】(1)指令操作码占4位,则指令系统最多可有
量为128KB ,计算机字长为16位,故主存有
需16位。
(2)由于寄存器字长为16位,所以转移指令的目标地址范围为0000H 〜FFFFH 。。
(3)汇编语句
寄存器
R5和地址为5678H 的存储单元的内容会改变,改变后的内容分别为
:
+对应的机器码为该指令执行后,条不同的指令;指令操作上占6个通用寄存器;主存容个存储单元,故MDR 和MAR 至少各位,寻址方式占3位,于是寄存器编号占3位,该计算机最多可以有(逗号前为源操作数,逗号后为目的操作数)对应的机器码是什么(十六进制表示)?该指令执行后,哪些寄存器和存储单元的内容会改变?