国家二级C语言(公共基础知识)机试模拟试卷18
选择题
1.有二叉树如下图所示:
(A)
A. ABDEGCFH
B. DBGEAFHC
C. DGEBHFCA
D. ABCDEFGH
解析:前序遍历首先访问根节点,然后遍历左子树,最后遍历右子树;在遍历左、右子树时,仍然先访问根节点,然后遍历左子树,最后遍历右子树。故本题前序序列是ABDEGCFH。
中序遍历首先遍历左子树,然后访问跟节点,最后遍历右子树;在遍历左、右子树时,仍然先遍历左子树,然后访问跟节点,最后遍历右子树。故本题的中序序列是DBGEAFHC。
后序遍历首先遍历左子树,然后遍历右子树,最后访问根节点;在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根节点。故本题的后序序列是DGEBHFCA。
2.设二叉树的前序序列为ABDEGHCFIJ,中序序列为DBGEHACIFJ,则后序序列为( )。(B)
A. JIHGFEDCBA
B. DGHEBIJFCA
C. GHIJDEFBCA
D. ABCDEFGHIJ
解析:二叉树的前序序列为ABDEGHCFIJ,由于前序遍历首先访问根节点,可以确定该二叉树的根节点是A。再由中序序列为DBGEHACIFJ,可以得到节点D、B、G、E、H位于根节点的左子树上,节点C、I、F、J位于根节点的右子树上。由于中序遍历和后序遍历都是先遍历左子树,故本题后序遍历首先访问D节点;再由后序遍历是最后访问根节点,故本题后序遍历最后访问的节点是根节点A。采用排除法可知,后续序列为DGHEBIJFCA。
3.某二叉树的中序遍历序列为CBADE,后序遍历序列为CBEDA,则前序遍历序列为( )。(C)
A. CBADE
B. CBEDA
C. ABCDE
D. EDCBA
解析:二叉树的后序遍历序列为CBEDA,由于后序遍历最后访问根节点,可以确定该二叉树的根节点是A。再由中序遍历序列为CBADE,可以得到子序列(CB)一定在左子树中,子序列(DE)一定在右子树中。节点C、B在中序序列和后序序列中顺序未变,说明节点B是节点C的父节点;节点D、E在中序序列和后序序列中顺序相反,说明节点D是节点E的父节点。因此该二叉树的前序遍历序列为ABCDE。
4.某二叉树的前序序列为ABCDEFG,中序序列为DCBAEFG,则该二叉树的深度(根节点在第1层)为( )。(C)
A. 2
B. 3
C. 4
D. 5
解析:二叉树的前序序列为ABCDEFG,则A为根节点;中序序列为DCBAEFG,可知节点D、C、B位于根节点的左子树上,节点E、F、G位于根节点的右子树上。另外,节点B、C、D在前序序列和中序序列中顺序相反,则说明这三个节点依次位于前一个节点的左子树上;节点E、F、G顺序未变,则说明这三个节点依次位于前一个节点的右子树上。故二叉树深度为4。
5.某完全二叉树按层次输出(同一层从左到右)的序列为ABCDEFGH。该完全二叉树的前序序列为( )。(B)
A. ABCDEFGH
B. ABDHECFG
C. HDBEAFCG
D. HDEBFGCA
解析:完全二叉树的特点是除最后一层外,每一层上的节点数均达到最大值;在最后一层上只缺少右边的若干节点。根据这一特点,再根据题意输出序列为ABCDEFGH,可以得到该二叉树的结构如下:
6.设非空二叉树的所有子树中,其左子树上的节点值均小于根节点值,而右子树上的节点值均不小于根-节点值,则称该二叉树为排序二叉树。对排序二叉树的遍历结果为有序序列的是( )。(B)
A. 前序序列
B. 中序序列
C. 后序序列
D. 前序序列或后序序列
解析:中序遍历的次序是先遍历左子树,再遍历根节点,最后遍历右子树。而在排序二叉树中,左子树节点值<根节点值≤右子树节点值,要使对排序二叉树的遍历结果为有序序列,只能采用中序遍历。
7.设二叉树中共有15个节点,其中的节点值互不相同。如果该二叉树的前序序列与中序序列相同,则该二叉树的深度为( )。(C)
A. 4
B. 6
C. 15
D. 不存在这样的二叉树
解析:在具有n个节点的二叉树中,如果各节点值互不相同,若该二叉树的前序序列与中序序列相同,则说明该二叉树只有右子树,左子树为空,二叉树的深度为n;若该二叉树的后序序列与中序序列相同,则说明该二叉树只有左子树,右子树为空,二叉树的深度为n。故本题中二叉树的深度为15。
8.在长度为n的顺序表中查找一个元素,假设需要查找的元素一定在表中,并且元素出现在表中每个位置上的可能性是相同的,则在平均情况下需要比较的次数为( )。(D)
A. n/4
B. n
C. 3n/4
D. (n+1)/2
解析:在顺序表中查找,最好情况下第一个元素就是要查找的元素,则比较次数为1;在最坏情况下,最后一个元素才是要找的元素,则比较次数为n。则平均比较次数:(1+2+…+n)/n=(n(n+1)/2)/n=(n+1)/2。
9.在长度为n的顺序表中查找一个元素,假设需要查找的元素有一半的机会在表中,并且如果元素在表中,则出现在表中每个位置上的可能性是相同的。则在平均情况下需要比较的次数大约为( )。(B)
A. n
B. 3n/4
C. n/2
D. n/4
解析:在顺序表中查找,最好情况下第一个元素就是要查找的元素,则比较次数为1;在最坏情况下,最后一个元素才是要找的元素,则比较次数为n。这是找到元素的情况。如果没有找到元素,则要比较n次。因此,平均需要比较:找到元素的情况÷+未找到元素的情况×
=(1+2+…+n)/n×
+n×
10.下列算法中均以比较作为基本运算,则平均情况与最坏情况下的时间复杂度相同的是( )。(A)
A. 在顺序存储的线性表中寻找最大项
B. 在顺序存储的线性表中进行顺序查找
C. 在顺序存储的有序表中进行对分查找
D. 在链式存储的有序表中进行查找
解析:寻找最大项,无论如何都要查看所有的数据,与数据原始排列顺序没有多大关系,无所谓最坏情况和最好情况,或者说平均情况与最坏情况下的时间复杂度是相同的。而查找无论是对分查找还是顺序查找,都与要找的数据和原始的数据排列情况有关,最好情况是第1次查看的一个数据恰好是要找的数据,只需要比较1次;如果没有找到再查看下一个数据,直到找到为止,最坏情况下是最后一次查看
本文档预览:3600字符,共9366字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载