2018年南通大学计算机科学与技术学院919C数据结构考研仿真模拟五套题
● 摘要
一、填空题
1. 无用单元是指_____,例_____
【答案】用户不再使用而系统没有回收的结构和变量;
2. 根据线性表的链式存储结构中每一个结点包含的指针个数,将线性链表分成_____和_____;而又根据指针的连接方式,链表又可分成_____和_____。
【答案】单链表;双链表;(动态) 链表;静态链表
【解析】线性表的链式存储结构根据每个结点包含的指针个数分为单链表和双链表,单链表只包含一个指针,指向后续元素,双链表包括两个指针,指向前一个元素和后续元素。根据指针的连接方式,链表可分为动态链表和静态链表。静态链表的指针指向下一个元素的编号,动态链表的指针指向下一个元素的物理位置。
3. 顺序存储结构是通过_____表示元素之间的关系的;链式存储结构是通过_____表示元素之间的关系的。
【答案】物理上相邻;指针
【解析】顺序存储结构是通过物理位置表示元素之间的关系的,链式存储结构通过指针表示元素之间的关系。
4. 串是一种特殊的线性表,_____;其特殊性表现在_____;串的两种最基本的存储方式是_____、两个串相等的充分必要条件是_____。
【答案】其数据元素都是字符;顺序存储;链式存储;串的长度相等且两串中对应位置的字符也相等
5. 当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用_____存储结构。
【答案】顺序
【解析】顺序存储结构的存取操作比较方便,但插入和删除操作不如链式存储结构方便,而且需要连续的存储空间,由于该线性表的元素总数基本稳定,而且很少进行插入删除操作,为了更快的存取元素,顺序表更合适。
6. 在拓扑分类中,拓扑序列的最后一个顶点必定是_____的顶点。
【答案】出度为0
【解析】如果最后一个顶点的出度不为0, 则必定还有顶点存在,与题目所说的最后一个顶点矛盾,所有最后一个顶点的出度必定为零。
7. 数组的存储结构采用_____存储方式。
【答案】顺序存储结构
【解析】数组本身的存储结构是线性的,也就是说它是连续存储的。
8. 设正文串长度为n ,模式串长度为m ,则串匹配的KMP 算法的时间复杂度为_____。
【答案】O(m+n)
9. 用循环链表表示的队列长度为n ,若只设头指针,则出队和入队的时间复杂度分别是_____和_____;若只设尾指针,则出队和入队的时间复杂度分别是_____和_____。
【答案】O(1);O(n);O(1);O(1)
【解析】队列的出队操作即删除队头的元素,队列的入队操作即在队尾添加元素,循环链表只设头指针,出队时,只要把头结点的下一个结点删除就好了,入队时,要把新的结点插入队尾,必须把队列遍历,找到队尾指针,才能插入。循环队列只设尾指针,出队时只要把为指针的下一个结点或者下下个结点删除即可,入队时,只要在尾指针的后面插入新的结点,并更新尾结点即可。
10.顺序栈用存储数据,栈顶指针是top ,则值为x 的元素入栈的操作是_____。
【答案】if(top!=n)data[++top]=x ;
【解析】先判断栈是否满,如果不满,元素入栈。否则返回溢出信息。
二、单项选择题
11.某二叉树结点的中序序列为BDAECF ,后序序列为DBEFCA ,则该二叉树对应的森林包括( )棵树。
A.1
B.2
C.3
D.4
【答案】C
【解析】由两序列可知,A 为根节点,ECF 为右子树,C 为右子树的根,F 为C 的右孩子。再由二叉树和森林的对应关系可知该二叉树对应的森林包括3棵树。根据中序序列和后序序列画出二叉树,根据二叉树得出对应的森林包含的树的棵数。
12.对n 个记录的线性表进行快速排序为减少算法的递归深度,以下叙述正确的是( )。
A. 每次分区后,先处理较短的部分
B. 每次分区后,先处理较长的部分
C. 与算法每次分区后的处理顺序无关
D. 以上三者都不对
【答案】A
【解析】令递归函数为f ,第一次进行递归函数认为递归深度为1,以后从深度为n 的递归函数f 中再调用递归函数f ,此时深度为n+1。整个f 的最大深度为递归深度。
13.Y 和z ,一个C 语言程序在一台32位机器上运行. 程序中定义了3个变量x 、其中x 和z 为int
Y 为short 型. 当x =127,Y =-9时,x 、Y 和z 的值分别是. 型,执行赋值语句z =x +Y 后,( )
A.x =0000007FH , Y =FFF9H , z =00000076H
B.x =0000007FH , Y =FFF9H , z =FFFF0076H
C.x =0000007FH , Y =FFF7H , z =FFFF0076H
D.x =0000007FH , Y =FFF7H , z =00000076H
【答案】D
【解析】当两个不同长度的数据,要想通过算术运算得到正确的结果,必须将短字长数据转换成长字长数据,这被称为“符号扩展”.例如,x 和z 为int 型,数据长32位,Y 为short 型,数据长16位,因此首先应将y 转换成32位的数据,然后再进行加法运算.
运算采用补码的形式,而x 的补码是0000007FH ,Y 的补码是FFFFFFF7H ,所以x +Y =00000076H.
14.下列排序算法中,其中( )是稳定的。
A. 堆排序,起泡排序
B. 快速排序,堆排序
C. 直接选择排序,归并排序
D. 归并排序,起泡排序
【答案】D
15.在系统总线的数据线上, 不可能传输的是( )。
A. 指令
B. 操作数
C. 握手(应答) 信号
D. 中断类型号型号
【答案】C
【解析】握手(应答) 信号属于通信联络控制信号应该在通信总线上传输, 不可能在数据总线上传输。而指令、操作数和中断类型码都可以在数据线上传输。
16.先序序列为a , b , c , d 的不同二叉树的个数是( )。
A.13