2018年河海大学物联网工程学院890算法与数据结构之数据结构考研强化五套模拟题
● 摘要
一、填空题
1. 对于双向链表,在两个结点之间插入一个新结点需修改的指针共_____个,单链表为_____个。
【答案】4;2
2. 有向图G=(V, E) ,其中
权d 。E(G)为
,则从源点0到顶点3的最短路径长度是_____,经过的中间顶点是_____。
【答案】50;4
3. 对单链表中元素按插入方法排序的C 语言描述算法如下,其中L 为链表头结点指针。请填充算法中标出的空白处,完成其功能。
:_____:
{_____)
(_____、
:_____;_____;p =u ;
【答案】(1)L﹣>next =NULL //置空链表,然后将原链表结点逐个插入到有序表中
(2)p!=NULL //当链表尚未到尾,p 为工作指针
(3)q!=NULL //查P 结点在链表中的插入位置,这时q 是工作指针
(4)p﹣>next =r ﹣>next //将P 结点链入链表中
(5)r﹣>next =p //r是q 的前驱,u 是下个待插入结点的指针
4. 表达式23+((12*3﹣2)/4+34,5/7) +108/9的后缀表达式是_____。 【答案】
,用三元组表示弧及弧上的 (表达式中的点(.)是数分隔符,如是三个数)
5. 设正文串长度为n ,模式串长度为m ,则串匹配的KMP 算法的时间复杂度为_____。
【答案】O(m+n)
6. 对于一个具有n 个结点的单链表,在已知的结点半p 后插入一个新结点的时间. 复杂度为_____,在给定值为x 的结点后插入一个新结点的时间复杂度为_____。
【答案】O(1);O(n)
【解析】第一种情况只需直接修改指针的指向。第二种情况必须从头结点遍历找到x 的结点。
7. 若不考虑基数排序,则在排序过程中,主要进行的两种基本操作是关键字的 _____和记录的_____。
【答案】比较;移动
8. 在二叉树中,指针p 所指结点为叶结点的条件是_____。 【答案】
【解析】叶子节点的左右孩子都不存在。
9. 对于一个具有n 个结点的二叉树,当它为一棵_____二叉树时具有最小高度, 当它为一棵_____时,具有最大高度。
【答案】完全;只有一个叶结点的二叉树
10. 设有一个10阶对称矩阵A 采用压缩存储方式(以行为主序存储:a 11=l) ,则a 85的地址为_____。
【答案】33
【解析】设存储的元素的行标为i ,列标为j 。若i >=j ,则的地址为l +2+... +i ﹣l +j =i(i﹣l)/2+j 。若i <j 。则的地址为j(j﹣l)/2+i 。将i =8,j =5代入得33。
11.执行顺序查找时,存储方式可以是_____,折半查找时,要求线性表_____,分块查找时要求线性表_____,而哈希表的查找,要求线性表的存储方式是_____。
【答案】顺序存储或链式存储;顺序存储且有序;块内顺序存储,块间有序;散列存储
12.顺序栈用存储数据,栈顶指针是top ,则值为x 的元素入栈的操作是_____。
【答案】if(top!=n)data[++top]=x ;
【解析】先判断栈是否满,如果不满,元素入栈。否则返回溢出信息。
二、单项选择题
13.下列选项中,不属于网络体系结构中所描述的内容是( ).
A. 网络的层次
B. 每一层使用的协议
C. 协议的内部实现细节
D. 每一层必须完成的功能
【答案】C
【解析】体系结构仅规定协议的功能和消息格式,但对具体的实现细节由具体设备厂商来确定,对于网络的层次,以及每一个层次的协议及其功能都是网络体系结构所要描述的内容,因此答案为选项C.
14.设栈S 和队列Q 的初始状态均为空,元素a ,b ,c ,d ,e ,f ,g 依次进入栈S. 若每个元素出
d ,c ,f ,e ,a ,g ,. 栈后立即进入队列Q ,且7个元素出队的顺序是b ,则找S 的容量至少是( )
A.1
B.2
C.3
D.4
【答案】C
【解析】由于栈具有先进后出的特性,队列具有先进先出的特性,出队顺序即为人队顺序.. 在本题中,每个元素出栈S 后立即进入队列Q ,出栈顺序即为入队顺序,所以本题中队列的作用形同虚设,根据题意出队顺序即为出栈顺序. 根据出桟顺序可以分析各个元素进出栈的过程:第一个出栈元素为b ,表明栈内还有元素a ,b 出栈前的深度为2;第二个出栈元素为d ,栈内元素为a 和c ,d 出栈前的深度为3;c 出栈后,剩余元素为a ,c 出栈前的深度为2;f 出栈后,剩余元素为a 和e ,f 出栈前的深度为3;e 出栈后,剩余元素为a ,e 出栈前的深度为2;a 出栈后,无剩余元素,a 出栈前的深度为1;g 出栈后,无剩余元素,g 出栈前的深度为1. 所以栈容量至少是3.
15.若元素a , b , c , d , e , f 依次进栈, 允许进栈、退栈操作交替进行, 但不允许连续三次进行退栈操作, 则不可能得到的出栈序列是( )。
A.d , c , e , b , f , a
B.c , b , d , a , e , f
C.b , c , a , e , f , d
D.a , f , e , d , c , b
【答案】D
【解析】4个选项所给序列的进、出栈操作序列分别为:
选项A.
选项B.
选项C.
选项D.
序。
按照题目要求, 不允许连续三次进行退栈操作, 所以选项D 所给序列为不可能得到的出栈顺
相关内容
相关标签