国家二级ACCESS机试选择题(数据结构与算法)模拟试卷9
选择题
1.在最坏情况下(C)
A. 快速排序的时间复杂度比冒泡排序的时间复杂度要小
B. 快速排序的时间复杂度比希尔排序的时间复杂度要小
C. 希尔排序的时间复杂度比直接插入排序的时间复杂度要小
D. 快速排序的时间复杂度与希尔排序的时间复杂度是一样的
解析:按平均时间将排序分为四类:①平方阶(O(n2))排序:各类简单排序,例如直接插入、直接选择和冒泡排序;②线性对数阶(O(nlog2n))排序:如快速排序、堆排序和归并排序;③O(nl+§))排序:§是介于0和1之间的常数。希尔排序便是一种;④线性阶(O(n))排序:本程序中的基数排序,此外还有桶、箱排序。
2.在深度为7的满二叉树中,度为2的结点个数为(B)
A. 64
B. 63
C. 32
D. 31
解析:因为在任意的二叉树中,度为0的结点(即叶子结点)总比度为2的结点的个数多1个,而度为0的结点数n0=2Tm-1(其中m为二叉树的深度)。本题的度为0的结点个数n0=27-1=26=64。因此,度为2的结点数n2=n0-1=63。所以选项B正确
3.设栈的顺序存储空间为S(1:m),初始状态为top=m+1。现经过一系列入栈与退栈运算后,top=20,则当前栈中的元素个数为(C)
A. 30
B. 20
C. m-19
D. m-20
解析:根据题意,栈空间如下图所示。
4.算法空间复杂度的度量方法是(D)
A. 算法程序的长度
B. 算法所处理的数据量
C. 执行算法所需要的工作单元
D. 执行算法所需要的存储空间
解析:算法空间复杂度是对一个算法在运行过程中临时占用存储空间大小的度量,因此选项D正确。
5.设循环队列为Q(1:m),其初始状态为front=reax=m。经过一系列入队与退队运算后,front=15,rear=20。现要在该循环队列中寻找最大值的元素,最坏情况下需要比较的次数为(A)
A. 4
B. 6
C. m-5
D. m-6
解析:初始状态为:front=rear=m,rear-front=0,此时队列为空,经过一系列入队与退队运算后,front=15,rear=20。队尾大于队头,则队尾rear减队头front等于5个元素。此时队列中有5个元素,而查找最大项至少要比较n-1次,就是4次。因此选项A正确。
6.下列叙述中正确的是(D)
A. 循环队列属于队列的链式存储结构
B. 双向链表是二叉树的链式存储结构
C. 非线性结构只能采用链式存储结构
D. 有的非线性结构也可以采用顺序存储结构
解析:顺序存储方式不仅能用于存储线性结构,还可以用来存放非线性结构。例如,完全二叉树是属于非线性结构,但其最佳存储方式是顺序存储方式。
7.某二叉树中有n个叶子结点,则该二叉树中度为2的结点数为(B)
A. n+1
B. n-1
C. 2n
D. n/2
解析:对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;N2=Nn-1。所以如果二叉树中有n个叶子结点,则该二叉树中度为2的结点数为n-1。因此选项B正确。
8.下列叙述中错误的是(C)
A. 算法的时间复杂度与算法所处理数据的存储结构有直接关系
B. 算法的空间复杂度与算法所处理数据的存储结构有直接关系
C. 算法的时间复杂度与空间复杂度有直接关系
D. 算法的时间复杂度与空间复杂度没有必然的联系
解析:算法的时间复杂度,是指执行算法所需要的计算工作量。算法的空间复杂度,是指执行这个算法所需要的内存空间。两者与算法所处理数据的存储结构都有直接关系,但两者之间没有直接关系,因此选项C错误。
9.设栈的顺序存储空间为S(0:49),栈底指针bottom=49,栈顶指针top=30(指向栈顶元素)。则栈中的元素个数为(C)
A. 30
B. 29
C. 20
D. 19
解析:在操作系统中,栈是向下生长的,如下图如示:
10.某二叉树的前序序列为ABCDEFG,中序序列为DCBAEFG,则该二叉树的深度(根结点在第1层)为(C)
A. 2
B. 3
C. 4
D. 5
解析:该二叉树的前序序列为ABCDEFG,中序序列为DCBAEFG,可知A为根结点,结点B、C、D位于根结点的左子树上,结点E、F、G位于根结点的右子树上;并且结点B、C、D在前序序列和中序序列中顺序颠倒,则说明这三个结点依次位于前一个结点的左子树上;结点E、F、G顺序未变,则说明这三个结点依次位于前一个结点的右子树上。所以得到的二叉树为:
11.下列叙述中正确的是(D)
A. 存储空间连续的数据结构一定是线性结构
B. 存储空间不连续的数据结构一定是非线性结构
C. 没有根结点的非空数据结构一定是线性结构
D. 具有两个根结点的数据结构一定是非线性结构
解析:数据结构从逻辑上来划分,分为线性结构和非线性结构,一对一是线性结构,其它的为非线性结构。判断一个非空的数据结构是否为线性结构必须满足以下两个条件:①有且只有一个根结点;②每一个结占最多有一个前件,也最多有一个后件。根据这两个条件,可知选项A)、B)和C)都不能判定是否是线性结构。
12.下列叙述中正确的是(C)
A. 带链队列的存储空间可以不连续,但队头指针必须大于队尾指针
B. 带链队列的存储空间可以不连续,但队头指针必须小于队尾指针
C. 带链队列的存储空间可以不连续,且队头指针可以大于也可以小于队尾指针
D. 以上三项都错误
解析:带链队列的存储空间可以不连续,且队头指针与队尾指针大小没有可比性,选项C正确。
13.设循环队列为Q(1:m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=20,rear=15。现要在该循环队列中寻找最小值的元素,最坏情况下需要比较的次数为(D)
A. 5
B. 6
C. m-5
D. m-6
解析:在循环队列中元素的个数为“(rear-front+M)%M”,式中rear为队尾指针,front为队首指针,M为存储容量,%为取余符号。对于找最小值的最坏情况下的比较次数,为循环队列中元素值个数减一。所以对于这个颢目来说初始时元素个数为0;运算后,元素个数为m一
本文档预览:3600字符,共9208字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载