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

2017年厦门大学能源学院845数据结构考研强化模拟题

  摘要

一、填空题

1. 若用n 表示图中顶点数目,则有_____条边的无向图成为完全图。

【答案】n (n-l )/2

【解析】无向完全图中任意一个顶点都和其他n-1个顶点都有一条边,即为n (n-l )。又因为每条边重复出现两次,所有无向完全图的边数为n (n-l )/2。

2. 设用希尔排序对数组{98,36,-9,0,47,23,1,8,10,7}进行排序,给出的步长(也称

增量序列)依次是4,2,1则排序需_____趟,写出第一趟结束后,数组中数据的排列次序_____。

【答案】3; (10,7,-9,0,47,23,1,8,98,36)

3. 求最短路径的Dijkstra 算法的时间复杂度为_____。 【答案】

4. 数组的存储结构采用_____存储方式。

【答案】顺序存储结构

【解析】数组本身的存储结构是线性的,也就是说它是连续存储的。

5. 当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用_____存储结构。

【答案】顺序

【解析】顺序存储结构的存取操作比较方便,但插入和删除操作不如链式存储结构方便,而且需要连续的存储空间,由于该线性表的元素总数基本稳定,而且很少进行插入删除操作,为了更快的存取元素,顺序表更合适。

6. —棵左子树为空的二叉树在前序线索化后,其中的空链域的个数为 _____。

【答案】2

【解析】只有根结点的做指针为空和最右边的叶结点的右指针为空。

7. 对于一个具有n 个结点的二叉树,当它为一棵_____二叉树时具有最小高度,当它为一棵_____ 时. 具有最大高度

【答案】完全;只有一个叶结点的二叉树

8. 在二叉树中,指针p 所指结点为叶结点的条件是_____。 【答案】

【解析】叶子节点的左右孩子都不存在。

9. 有向图G=(V ,E ), 其中V (G )=[0, 1,2,3,4, 5}, 用三元组表示弧及弧上的权d 。 E (G )为 E (G= {<0,5, 100>, <0,2,10>, <1,2,5>,<0,4, 30>,<4, 5, 60>,<3,5, 10>,<2. 3,50>, <4, 3, 20>},则从源点0到顶点3的最短路径长度是_____,经过的中间顶点是_____。

【答案】50; 4

10.当两个栈共享一存储区时,栈利用一维数组

当栈1空时

【答案】为_____,栈2空时

, 表示,两栈顶指针为则为_____,栈满时为_____。 【解析】共享栈的栈底在共享存储区的两端,当栈满时栈顶相邻。

11.在双向循环链表中,向P 所指的结点之后插入指针f 所指的结点,其操作是_____、_____、_____、_____。 【答案】

12.在下面的程序段中,对X 的赋值语句的时间复杂度为_____(表示为n 的函数)。

【答案】1+(1+2)+(1+2+3)+"•+(l +2+... +n )=n(n +1)(n +2)/6,即

【解析】当i=l时,赋值语句就被执行了一次。当i=2时,赋值语句被执行了1+2次。当i=3时,赋值语句被执行了1+2+3次。可以推出赋值语句总共被执行了1+(1+2)+(1+2+3)+…+(l +2+... +n )=n(n +1)(n +2)/6次。

二、选择题

13.下列命中组合情况中,一次访存过程中不可能发生的是( )。

A.TLB 未命中,Cache 未命中,Page 未命中

B.TLB 未命中,Cache 命中,Page 命中

C.TLB 命中,Cache 未命中,Page 命中

D.TLB 命中,Cache 命中,Page 未命中

【答案】D

【解析】TLB (快表)和慢表(页表,Page )构成二级存储系统,若TLB 命中,则Page 必命中。因此不可能发生的是D 选项。

14.设哈希表

长哈希函

数表中已有4个结点

其余地址为空,如用二次探测

再哈希法解决冲突,关键字为49的结点的地址是( )。

【答案】D

【解析】15,38,61,84用哈希函数

为5,发生冲突,用二次探测再散列法解决冲突:

仍然发生冲突。

仍然发生冲突。

不再发生冲突。

15.下列关于AOE 网的叙述中,不正确的是( )。

A. 关键活动不按期完成就会影响整个工程的完成时间

B. 任何一个关键活动提前完成,那么整个工程将会提前完成

C. 所有的关键活动提前完成,那么整个工程将会提前完成

D. 某些关键活动若提前完成,那么整个工程将会提前完成

【答案】B

【解析】关键路径是指从有向图的源点到汇点的最长路径。某些关键活动提前完成,那么整个工程将会提前完成,但不是任何一个关键活动提前完成,就能保证整个工程将会提前完成。

16.某文件占10个磁盘块,现要把该文件磁盘块逐个读入主存缓冲区,并送用户区进行分析。假设一个缓冲区与一个磁盘块大小相同,

把一个磁盘块读人缓冲区的时间为

传送到用户区的时间是CPU 对一块数据进行分析的时间为

构下,读人并分析完该文件的时间分别是( )。

A.

B.

C.

D.

【答案】B

【解析】这是一个简单的缓冲区的问题。由于缓冲区的访问是互斥的,所以对单一缓冲区,从磁盘写入和读 出到用户区的操作必须串行执行,也就是要保证互斥操作。而CPU 对数据的分析与从用户区读数据也是需要互斥操作,但是CPU 分析与从磁盘写入缓冲区的操作可以并行。从本题看,由于分析所用的时间小于从磁盘写入 缓冲区的时间,因此,CPU 会空闲。单缓冲区的总时间=(磁盘写入缓冲区时间+缓冲区读出时间

)处理最后一块数据的时

当采用双缓冲区时,每块缓冲区的操作也必须满足互斥操作,但是,

对两块缓冲区的操作却可以并行,所以,当第一个缓冲区写满以后,磁盘紧接着写另一个缓冲区,

同时,前一个已经满了的缓冲区被读出到用户区,并立即进行CPU 的数据分析。读出操作和数据分析必须互斥进行,故从时间上看,当数据被读出并分析后,恰好另一个缓冲区也写满了,可以

计算后得地址:4,5,6,7。49计算后将缓冲区的数据,在单缓冲区和双缓冲区结