2018年杭州电子科技大学通信工程学院851数据结构考研仿真模拟五套题
● 摘要
一、判断题
1. 在执行某个排序算法过程中,出现了排序码朝着最终排序序列位置相反方向移动,则该算法是不稳定的。( )
【答案】×
【解析】例如起泡排序是稳定排序,将4, 3, 2,1按起泡排序排成升序序列,第一趟变成3, 2,1,4,此 时3就朝向最终位置的相反方向移动。
2. 用一维数组存储二叉树时,总是以前序遍历顺序存储结点。( )
【答案】 ×
【解析】后序遍历、中序遍历也可以遍历一维数组存储的二叉树。
3. 在待排数据基本有序的情况下,快速排序效果好。( )
【答案】×
【解析】在待排数据基本有序的情况下,插入排序效果好。
4. 串长度是指串中不同字符的个数。( )
【答案】 ×
【解析】不是,串长度是指串中字符的总个数。需要注意的是,在计算字符串的长度时,不要漏掉了空格。
5. —个有向图的邻接表和逆邻接表中的结点个数一定相等。( )
【答案】√
【解析】图的邻接表表示法类似于树的孩子链表示法。对于图G 中的每个顶点,该方法把所以邻接于顶点
的链接成一个带头。在有向图中,为图中每个顶点建立一个入边表的方法称为逆邻接表示法。
6. 堆是满二叉树。( )
【答案】×
【解析】堆的定义:
n 个关键字序列
①②且且
称为堆,当且仅当该序列满足如下性质(简称为堆性质) :
小根堆:满足第①种情况的堆;
大根堆:满足第②种情况的堆。
因此并不能保证堆是满二叉树。
二、单项选择题
7. 下列选项中, 能缩短程序执行时间的措施是( )。
Ⅰ. 提高CPU 时钟频率
Ⅱ. 优化数据通路结构
Ⅲ. 对程序进行编译优化
A. 仅Ⅰ和Ⅱ
b. 仅Ⅰ和Ⅲ
c. 仅Ⅱ和Ⅲ
d. Ⅰ、Ⅱ和Ⅲ
【答案】D
【解析】一般说来, CPU 时钟频率(主频) 越高, CPU 的速度就越快; 优化数据通路结构, 可以有效提高计算机系统的吞吐量; 编译优化可得到更优的指令序列。所以Ⅰ、Ⅱ、Ⅲ都是有效措施。
8. 向一个栈顶指针为h 的带头结点的链栈中插入指针S 所指的结点时,应执行( )。
A.h ﹣>next =s ;
B.s ﹣>next =h ;
C.s ﹣>next =h ;h ﹣>next =s ;
D.s ﹣>next =h ﹣next ;h ﹣>next =s ;
【答案】D
【解析】本题是向一个链栈中插入结点,可从头结点后插入。先将s 结点指向第一个头结点之后的结点之前,再将头结点指向s 结点。
9. 设桟S 和队列Q 的初始状态为空,元素el ,e2,e3,e4,e5和e6依次通过栈S ,一个元素出栈后即进队列Q ,若6个元素出队的序列是e2,e4,e3,e6,e5,el ,则栈S 的容量至少应该是( )。
A.6
B.4
C.3
D.2
【答案】C
10.采用递归方式对顺序表进行快速排序。下列关于递归次数的叙述中, 正确的是( )。
A. 递归次数与初始数据的排列次序无关
B. 每次划分后, 先处理较长的分区可以减少递归次数
C. 每次划分后, 先处理较短的分区可以减少递归次数
D. 递归次数与每次划分后得到的分区的处理顺序无关
【答案】D
【解析】快速排序是递归的, 递归过程可用一棵二叉树给出, 递归调用层次数与二叉树的深度一致。例如:待排序列{48, 62, 35, 77, 55, 14, 35, 98) , 采用快速排序方法, 其对应递归调用过程的二叉树如下图所示。
图
在最坏情况下, 若初始序列按关键码有序或基本有序时, 快速排序反而蜕化为冒泡排序。即其对应递归调用过程的二叉树是一棵单支树。因此快速排序的递归次数与初始数据的排列次序有关。但快速排序的递归次数与每次划分后得到的分区处理顺序无关, 即先处理较长的分区或先处理较短的分区都不影响递归次数。
11.若X 是二叉中序线索树中一个有左孩子的结点,且X 不为根,则X 的前驱为( )。
A.X 的双亲
B.X 的右子树中最左的结点
C.X 的左子树中最右的结点
D.X 的左子树中最右的叶结点
【答案】C
【解析】中序线索,只有把其左子树最右结点遍历完后,才会遍历自己,所以X 的前驱为X 的左子树中最右的结点。
12.下列进程调度算法中,综合考虑进程等待时间和执行时间的是( ).
A. 时间片轮转调度算法
B. 短进程优先调度算法
C. 先来先服务调度算法
D. 高响应比优先调度算法
【答案】D
【解析】时间片轮转法和先来先服务算法都是公平的方法,并未考虑进程等待时间和执行时间,而短进程优先考虑的是进程执行时间. 最高响应比优先调度算法是最先执行响应比最高的进程(响应比=1+等待时间/估计运行时间). 该算法综合了先来先服务(FCFS)和短作业优先(SJF)算法,
相关内容
相关标签