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计算后将缓冲区的数据,在单缓冲区和双缓冲区结
相关内容
相关标签