第一章 单元测试
1、单选题:
数据在计算机内存中的表示是指()
选项:
A:数据结构
B:数据的存储结构
C:数据元素之间的关系
D:数据的逻辑结构
答案: 【数据的存储结构】
2、单选题:
算法指的是()
选项:
A:排序算法
B:解决问题的计算方法
C:解决问题的有限运算序列
D:计算机程序
答案: 【解决问题的有限运算序列
】
3、单选题:
在数据结构中,与所使用的计算机无关的数据结构是()
选项:
A:逻辑结构
B:存储结构
C:逻辑结构和存储结构
D:物理结构
答案: 【逻辑结构
】
4、单选题:
算法能正确地实现预定功能的特性称为算法的()。
选项:
A:健壮性
B:正确性
C:高效性
D:可读性
答案: 【正确性】
5、单选题:
已知某算法的执行时间为(n+n2)log2(n+2),n为问题规模,则该算法的时间复杂度是( )。
选项:
A:O(n^2)
B:O(nlogn)
C:O((n+n^2)logn)
D:O(n^2logn)
答案: 【O(n^2logn)】
6、单选题:
下面算法将一维数组a中的数据逆序存放到原数组中,空间复杂度为()。
for(i=0;i<n;i++) b[i] = a[n-i-1];for(i=0;i<n;i++) a[i] = b[i];
选项:
A:O(logn)
B:O(1)
C:O(n2)
D:O(n)
答案: 【O(n)】
第二章 单元测试
1、单选题:
链表不具备的特点是( )。
选项:
A:插入和删除不需要移动任何元素
B:可随机访问任意一个结点
C:不必事先估计存储空间
D:所需空间与其长度成正比
答案: 【可随机访问任意一个结点
】
2、判断题:
线性表的顺序存储表示优于链式存储表示。
选项:
A:错
B:对
答案: 【错】
3、判断题:
顺序存储结构的缺点是不便于修改,插入和删除需要移动很多结点。
选项:
A:错
B:对
答案: 【对】
4、单选题:
在设头、尾指针的单链表中,与长度n有关的操作是( )。
选项:
A:在第一个结点之前插入一个结点
B:在p结点之后插入一个结点
C:删除第一个结点
D:删除最后一个结点
答案: 【删除最后一个结点】
5、单选题:
设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B间插入结点X的操作序列为( )。
选项:
A:q->next=s; s->next=p;
B:s->next=p->next;p->next=-s;
C:p->next=s->next;s->next=p;
D:p->next=s;s->next=q;
答案: 【q->next=s; s->next=p;】
6、单选题:
对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为( )。
选项:
A:用头指针表示的循环单链表
B:单链表
C:顺序表
D:用尾指针表示的循环单链表
答案: 【用尾指针表示的循环单链表】
7、单选题:
在一个单链表中,若p所指节点不是最后节点,在p之后插入s所指节点,则执行( )。
选项:
A:s->link=p->link;p=s;
B:p->link=s;s->link=p;
C:s->link=p;p->link=s;
D:s->link=p->link;p->link=s;
答案: 【s->link=p->link;p->link=s;】
8、单选题:
在双向链表存储结构中,删除p所指的结点时须修改指针( )。
选项:
A:p->prior->next=p; p->prior=p->prior->prior;
B:p->prior=p->next->next; p->next=p->prior->prior;
C:p->next=p->next->next; p->next->prior=p;
D:p->next->prior=p->prior; p->prior->next=p->next;
答案: 【p->next->prior=p->prior; p->prior->next=p->next;】
9、单选题:
若事先不知道线性表的长度,则处理线性表时较好的存储结构是( )。
选项:
A:顺序表
B:静态链表
C:B和C
D:单链表
答案: 【单链表】
10、单选题:
向一个有127个元素的顺序表中插入一个新元素并保存,原来顺序不变,平均要移动( )个元素。
选项:
A:8
B:63
C:63.5
D:7
答案: 【63.5】
11、单选题:
某线性表采用顺序存储结构,每个元素占4个存储单元,首地址为100,则第12个元素的存储地址为( )。
选项:
A:145
B:147
C:144
D:148
答案: 【144】
12、单选题:
在一个以 h 为头的单循环链表中,p 指针指向链尾的条件是( )。
选项:
A:p->next == h
B:p->next == NULL
C:p->next->next == h
D:p->data == -1
答案: 【p->next == h】
13、单选题:
在表头指针为head 且表长大于1的单向循环链表中,指针p 指向表中的某个结点,若p->next->next=head,则( )。
选项:
A:*p的直接后继是头结点
B:*p的直接后继是尾结点
C:p指向尾结点
D:p指向头结点
答案: 【*p的直接后继是尾结点】
14、单选题:
线性表若采用链式存储结构时,要求内存中可用存储单元的地址( )。
选项:
A:部分地址必须是连续的
B:一定是不连续的
C:必须是连续的
D:连续不连续都可以
答案: 【连续不连续都可以】
15、单选题:
在单链表中,指针p指向元素为x的结点,实现“删除x的后继”的语句是( )。
选项:
A:p=p->next;
B:p=p->next->next;
C:p->next=p;
D:p->next=p->next->next;
答案: 【p->next=p->next->next;】
16、单选题:
可以用带表头结点的链表表示线性表,也可以用不带表头结点的链表表示线性表,前者最主要的好处是( )。
选项:
A:可以提高存取元素的速度
B:节省存储空间
C:使空表和非空表的处理统一
D:可以加快对表的遍历
答案: 【使空表和非空表的处理统一】
17、单选题:
与单链表相比,双向链表的优点之一是( )。
选项:
A:顺序访问相邻结点更加灵活
B:可以省略表头指针或表尾指针
C:可以随机访问
D:插入、删除操作更加简单
答案: 【顺序访问相邻结点更加灵活】
18、单选题:
如果最常用的操作是取第i个结点及其前驱,最节省时间的存储方式( )。
选项:
A:单链表
B:顺序表
C:双向链表
D:单循环链表
答案: 【顺序表】
19、单选题:
线性链表不具有的特点是( )。
选项:
A:插入与删除时不必移动元素
B:所需空间与线性表长度成正比
C:不必事先估计所需存储空间大小
D:随机访问
答案: 【随机访问】
20、单选题:
对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的。插入一个元素时平均要移动表中的( )个元素。
选项:
A:(n+1)/2
B:n/2
C:n
D:(n-1)/2
答案: 【n/2】
21、判断题:
链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺序存储结构中效率高。
选项:
A:对
B:错
答案: 【对】
22、单选题:
在一个带头结点的双向循环链表中,若要在p所指向的结点之前插入一个新结点,则需要相继修改( )个指针域的值。
选项:
A:2
B:3
C:4
D:5
答案: 【4】
23、判断题:
具有线性关系的集合中,若a,b是集合中的任意两个元素,则必有a<b的关系。
选项:
A:对
B:错
答案: 【错】
第三章 单元测试
1、单选题:
设abcdef以所给次序进栈,若在进栈操作时允许退栈,则下列得不到的序列为()
选项:
A:fedcba
B:bcafed
C:dcefba
D:cabdef
答案: 【
2、单选题:
若已知一个栈的进栈序列是1,2,3……n,其输出序列是p1,p2,p3,pn, 若p1=3,
则p2为()
选项:
A:可能是1
B:可能是2
C:一定是1
D:一定是2
答案: 【
】
3、单选题:
假定循环队列的队首和队尾指针分别为front和rear,则判断队满的条件为( )。
选项:
A:front = = 0
B:front= =rear
C:front+1 = = rear
D:(rear+1) mod MAXSIZE = = front
答案: 【】
4、判断题:
队列和栈都是运算受限的线性表,只允许在表的两端进行运算。
选项:
A:对
B:错
答案: 【】
5、单选题:
循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是( )。
选项:
A:(rear-front+m)%m
B:rear-front-1
C:rear-front
D:rear-front+1
答案: 【
6、判断题:
不论栈是用数组实现,还是用链表实现,入栈和出栈的时间复杂度均为O(n)。
选项:
A:对
B:错
答案: 【】
7、单选题:
若栈采用顺序存储方式存储,两栈共享空间A[1..m],top[i]代表第i个栈(i=1, 2)的栈顶,栈1的底在A[1],栈 2的底在A[m],则栈满的条件是()。
选项:
A:top[1]+top[2]=m
B:|top[2]-top[1]|=0
C:top[1]=top[2]
D: top[1]+1=top[2]
答案: 【
】
8、单选题:
输入序列为ABC,若出栈的顺序为CBA时,经过的栈操作为( ) 。
选项:
A:push,push,pop,pop,push,pop
B:push,pop,push,push,pop,pop
C:push,pop,push,pop,push,pop
D:push,push,push,pop,pop,pop
答案: 【】
9、单选题:
链栈与顺序栈相比,有一个比较明显的优点是( )。
选项:
A:会出现栈空的情况
B:删除操作更方便
C: 插入操作更方便
D:通常不会出现栈满的情况
答案: 【】
10、单选题:
设计一个判别表达式中左,右括号是否配对出现的算法,采用( )数据结构最佳。
选项:
A:线性表的顺序存储结构
B:队列
C:线性表的链式存储结构
D:栈
答案: 【】
11、单选题:
某队列允许在其两端进行入队操作,但只允许在一端进行出队操作,若有元素a, b, c, d, e依次入队后再进行出队操作,则不可能得到的出队序列是()。
选项:
A:b,a,c,d,e
B:d,b,c,a,e
C:e,c,b,a,d
D:d,b,a,c,e
答案: 【】
12、单选题:
有如下递归算法:
int fact(int n){//n大于等于0 if(n<=0) return 1; else return n*fact(n-1);}
则计算fact(n)需调用该函数的次数是()。
选项:
A:n+1
B:n
C:n-1
D:n+2
答案: 【】
13、单选题:
设有一个递归算法如下
int fact(int n) { //n大于等于0
if(n<=0) return 1;
else return n*fact(n-1); }则计算fact(n)需要调用该函数的次数为( )。
选项:
A:n-1
B:n
C:n+1
D:n+2
答案: 【】
14、单选题:
( )的一个重要应用是在程序设计语言中实现递归。
选项:
A:栈
B:顺序表
C:队列
D:数组
答案: 【】
15、判断题:
通常使用队列来处理函数或过程的调用。
选项:
A:错
B:对
答案: 【】
16、判断题:
栈和队列的存储方式,既可以是顺序方式,又可以是链式方式
选项:
A:错
B:对
答案: 【】
17、单选题:
若已知一队列用单向链表表示,该单向链表的当前状态(含3个对象)是:1->2->3,其中x->y表示x的下一节点是y。此时,如果将对象4入队,然后队列头的对象出队,则单向链表的状态是:( )。
选项:
A:1->2->3
B:状态不唯一
C:4->1->2
D:2->3->4
答案: 【
第四章 单元测试
1、单选题:
设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第1个元素,其存储地址为1,每个元素占用1个地址空间,则a85的地址为()。
选项:
A:
40
B:
33
C:
18
D:
13
答案: 【
】
2、单选题:
对于以行为主序的存储结构来说.在数组A[c1..d1,c2..d2]中,c1和d1分别为数组A的第一维下标的下、上界,c2和d2分别为第二维下标的下、上界.每个数据元素占k个存储单元,二维数组中任一元素a[i,j]的存储位置可由( )确定。
选项:
A:Loc[i,j]=[(d2-c2+1)(i-c1)+(j-c2)] ×k
B: Loc[i,j]=A[c1,c2]+[(d2-c2+1)(i-c1)+(j-c2)] ×k
C: Loc[i,j]=Loc[0,0]+[(d2-c2+1)(i-c1)+(j-c2)] ×k
D:Loc[i,j]=[Loc[c1,c2]+[(d2-c2+1)(i-c1)+(j-c2)] ×k
答案: 【】
3、单选题:
A[N,N]是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组T[N(N+1)/2]中,则对任一上三角元素a[i][j]对应T[k]的下标k是
选项:
A: j(j-1)/2+i
B:i(i-1)/2+j
C: j(i-1)/2+1
D: i(j-i)/2+1
答案: 【】
4、单选题:
对矩阵压缩存储是为了()
选项:
A:提高运算速度
B:减少存储空间
C:方便运算
D:方便存储
答案: 【 】
5、判断题:
操作取广义表的表尾就是将广义表中最后一个元素值返回。
选项:
A:错
B:对
答案: 【】
6、判断题:
若广义表S的表头是空表,则S是一个空表。
选项:
A:错
B:对
答案: 【】
7、单选题:
下面说法不正确的是()。
选项:
A:广义表可以看作是一个多层次结构
B:广义表的表尾总是一个广义表
C:广义表的表头总是一个广义表
D:广义表难以用顺序存储结构实现
答案: 【】
8、单选题:
有一个10阶的对称矩阵A,采用压缩存储方式以行序为主序存储,A[1][1]为第一元素,其存储地址为1,每个元素占一个地址空间,则A[7][5]和A[5][6]的存储地址分别为()
选项:
A:26 25
B:40 32
C:25 20
D:26 22
答案: 【】
9、单选题:
GetHead ( (p,h,w) ) =
选项:
A:(h,w)
B:(p)
C:p
D:()
答案: 【】
10、单选题:
已知广义表L=((x,y,z),a,(u,t,w)),从L表中取出原子项t的运算是( )。
选项:
A:tail(head(head(tail(L))))
B:head(tail(head(tail(L))))
C:head(tail(head(tail(tail(L)))))
D:head(tail(tail(L)))
答案: 【
】
第五章 单元测试
1、单选题:
二叉树是非线性数据结构,所以 。
选项:
A:顺序存储结构和链式存储结构都不能使用
B:顺序存储结构和链式存储结构都能存储
C:它不能用链式存储结构存储
D:它不能用顺序存储结构存储
答案: 【
】
2、判断题:
二叉树中所有结点个数是2k-1-1,其中k是树的深度。
选项:
A:错
B:对
答案: 【】
3、判断题:
二叉树中每个结点有两棵非空子树或有两棵空子树。
选项:
A:错
B:对
答案: 【】
4、判断题:
在只有度为0和度为2的二叉树中 ,设度为0的结点有n0个,度为2的结点有n2个,则有n0=n2+1。
选项:
A:对
B:错
答案: 【】
5、判断题:
树中所有结点的度之和等于所有结点数减1。
选项:
A:错
B:对
答案: 【】
6、判断题:
设森林F中有4棵树,第1、2、3、4棵树的结点个数分别为n1、n2、n3、n4,当把森林F转换成一棵二叉树后,其根结点的左子树中有n1个结点。
选项:
A:错
B:对
答案: 【】
7、判断题:
设Huffman树的叶子结点数为m,则结点总数为2m-1。
选项:
A:错
B:对
答案: 【】
8、单选题:
某二叉树中序序列为BDAECF,后序序列为DBEFCA,则二叉树对应的森林包括( )棵树。
选项:
A:1
B:4
C:2
D:3
答案: 【】
9、单选题:
若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点的个数是( )。
选项:
A:9
B:15
C:11
D:不能确定
答案: 【】
10、单选题:
任何一棵二叉树的叶子结点在前序、中序和后序遍历序列中的相对次序( )。
选项:
A:发生改变
B:不发生改变
C:不能确定
D:其余选项都不对
答案: 【】
11、单选题:
设某棵二叉树的高度为9,则该二叉树上叶子结点最多有( )。
选项:
A:256
B:1023
C:512
D:511
答案: 【】
12、单选题:
若完全二叉树的结点个数为100,则第60个结点的度为( )。
选项:
A:不确定
B:1
C:0
D:2
答案: 【】
13、单选题:
树的基本遍历策略分为先根遍历和后根遍历;二叉树的基本遍历策略可分为先序遍历、中序遍历和后序遍历。这里,我们把由树转化得到的二叉树叫做这棵树对应的二叉树,其中结论( )是正确的。
选项:
A:其余选项都不对
B:树的后根遍历序列与其对应的二叉树的后序遍历序列相同
C:树的先根遍历序列与其对应的二叉树的先序遍历序列相同
D:树的先根遍历序列与其对应的二叉树的中序遍历序列相同
答案: 【】
14、单选题:
某二叉树的先序和后序遍历序列正好相反,则该二叉树一定是( )。
选项:
A:空或只有一个结点
B:深度等于其结点数
C:二叉排序树
D:完全二叉树
答案: 【】
15、单选题:
一棵二叉树的高度为h,所有结点的度或为0或为2,则这棵二叉树最少有( )个结点。
选项:
A:h+1
B:2h
C:2h+1
D:2h-1
答案: 【
16、单选题:
如果一棵二叉树中所有结点的值都大于其左子树中的所有结点的值,且小于其右子树中所有结点的值,现欲得到各个结点的递增序列,采用的方法是( )。
选项:
A:前序遍历
B:中序遍历
C:层次遍历
D:后序遍历
答案: 【
17、单选题:
设n,m为一棵二叉树上的两个结点,在中序遍历中 ,n在m前的条件是( )。
选项:
A:n在m的左子树上
B:n是m的子孙
C:n是m的祖先
D:n 在m右子树上
答案: 【】
18、单选题:
深度为5的二叉树至多有( )个结点。
选项:
A:32
B:31
C:10
D:16
答案: 【】
19、单选题:
由权值分别为 11、 8、 6、 2 、 5 的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。
选项:
A:24
B:71
C:53
D:48
答案: 【】
20、单选题:
如果一个完全二叉树最底下一层为第六层(根为第一层)且该层共有8个叶结点,那么该完全二叉树共有多少个结点?( )
选项:
A:39
B:63
C:71
D:31
答案: 【
】
21、单选题:
某二叉树的前序遍历序列为ABDGCEFH,中序遍历序列为DGBAECHF,则后序遍历序列为( )。
选项:
A:GDBECFHA
B:BDGCEFHA
C:GDBEHFCA
D:BDGAECHF
答案: 】
22、单选题:
一个具有1025个结点的二叉树的高h为( )。
选项:
A:11至1025之间
B:11
C:10至1024之间
D:10
答案: 【】
23、单选题:
设森林中有三棵树,第一、二、三棵树的结点个数分别为n1、n2、n3,那么将森林转换成二叉树后,其根结点的右子树上有( )个结点。
选项:
A:其他情况
B:n2+n3
C:n1-1
D:n1
答案: 【】
第六章 单元测试
1、单选题:
任何一个无向连通图的最小生成树
选项:
A:一定有多棵
B:只有一棵
C:可能不存在
D:一棵或多棵
答案: 【】
2、单选题:
用邻接表表示图进行广度优先遍历时,通常是采用 来实现算法的。
选项:
A:图
B:栈
C:队列
D:树
答案: 【
3、单选题:
在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的 倍。
选项:
A:1/2
B:1
C:4
D:2
答案: 【
4、单选题:
已知有向图G = (V, E),其中V={V1,V2,V3,V4,V5,V6,V7},E={<V1,V2>,<V1,V3>,<V1,V4>,<V2,V5>,<V3,V5>,<V3,V6>,<V4,V6>,<V5,V7>,<V6,V7>},G的拓扑有序序列是()。
选项:
A:V1,V3,V2,V6,V4,V5,V7
B:V1,V3,V4,V5,V2,V6,V7
C: V1,V3,V4,V6,V2,V5,V7
D:V1,V2,V5,V3,V4,V6,V7
答案: 【 】
5、单选题:
对于含有n个顶点的带权连通图,它的最小生成树是指图中任意一个()。
选项:
A:由n-1条权值之和最小的边构成的连通子图
B:由n个顶点构成的边的权值之和最小的连通子图
C:由n-1条权值之和最小的边构成的子图
D: 由n-1条权值最小的边构成的子图
答案: 【】
6、判断题:
用邻接矩阵存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间与图中结点的个数有关,而与图的边数无关。
选项:
A:对
B:错
答案: 【】
7、判断题:
如果有向图的所有顶点可以构成一个拓扑排序,则说明该有向图存在回路。
选项:
A:错
B:对
答案: 【】
8、判断题:
一个非空图可以没有边,但不能没有顶点。
选项:
A:对
B:错
答案: 【】
9、判断题:
有n-1条边的图肯定都是生成树。
选项:
A:对
B:错
答案: 【】
10、单选题:
n个顶点的完全有向图含有边的数目是()。
选项:
A:n * n
B:n(n-1)
C:n/2
D:n(n+1)
答案: 【】
11、单选题:
在有向图的邻接表存储结构中,顶点v在链表中出现的次数是()。
选项:
A:顶点v的出度
B:依附于顶点v的边数
C:顶点v的入度
D:顶点v的度
答案: 【】
12、判断题:
对一个无向图进行深度优先搜索时,得到的搜索序列是唯一的。
选项:
A:对
B:错
答案: 【】
13、单选题:
G是一个非连通无向图,有28条边,则G至少有()个顶点。
选项:
A:10
B:8
C:9
D:7
答案: 【】
14、单选题:
对于一个有n个顶点,e条边的有向图,采用邻接表存储,对其进行广度优先搜索,算法的时间复杂度是()。
选项:
A:O(n*e)
B:O(e)
C:O(n+e)
D:O(n)
答案: 【
15、单选题:
下列关于无向连通图的叙述中,正确的是()。
- 所有顶点的度数之和是偶数
- 边数大于顶点数减1
- 至少有一个顶点的度是1
选项:
A:只有c
B:a和b
C:a和c
D:只有a
答案: 【】
16、单选题:
在TopSort(拓扑排序)函数中,如果外循环还没结束,就已经找不到“未输出的入度为0的顶点”,则说明
选项:
A: 该图有顶点不连通
B: 图中必定存在回路
C: 图中可能有回路
D: 算法错误
答案: 【
】
17、单选题:
使用克鲁斯卡尔(Kruskal)算法求图 G 的最小生成树,加入到最小生成树中的边依次是()
选项:
A: (a,e), (c,e), (b,e), (b,f), (b,d)
B: (b,f), (b,d), (b,e), (a,e), (c,e)
C: (b,f), (b,d), (a,e), (c,e), (b,e)
D: (a,e), (b,e), (c,e), (b,d), (b,f)
答案: 【
】
18、单选题:
下列选项中,不是如下有向图的拓扑序列的是
选项:
A: 5, 2, 1, 6, 3, 4
B:5, 1, 2, 6, 3, 4
C: 1, 5, 2, 3, 6, 4
D: 5, 1, 2, 3, 6, 4
答案: 【
】
19、单选题:
如果无向完全图G中有78条边,则G的生成树有( )条边。
选项:
A:14
B:32
C:77
D:12
答案: 【】
20、单选题:
在一个有权无向图中,如果顶点b到顶点a的最短路径长度是10,顶点c与顶点b之间存在一条长度为3的边。那么下列说法中有几句是正确的?
I. c与a的最短路径长度就是13
II. c与a的最短路径长度就是7
III. c与a的最短路径长度不超过13
IV. c与a的最短路径不小于7
选项:
A:2句
B:3句
C:1句
D:4句
答案: 【】
第七章 单元测试
1、单选题:
有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当用二分法查找值82的结点时,()次比较后查找成功。
选项:
A:4
B:1
C:2
D:8
答案: 【】
2、单选题:
若根据查找表建立长度为 m 的哈希表,采用线性探测法处理冲突,假定对一个元素第一次计算的哈希地址为 d,则下一次的哈希地址为( )。
选项:
A:d
B:d+1
C:(d+1)/m
D:(d+1)%m
答案: 【】
3、单选题:
若根据查找表(23,44,36,48,52,73,64,58)建立哈希表,采用 h(K)=K%13 计算哈希地址,则元素 64 的哈希地址为( )。
选项:
A:4
B:13
C:12
D:8
答案: 【】
4、单选题:
从具有 n 个结点的二叉排序树中查找一个元素时,在最坏情况下的时间复杂度为( )。
选项:
A:O(n)
B:O(n^2)
C:O(1)
D:O(logn)
答案: 【
5、单选题:
对具有 n 个元素的有序表采用折半查找,则算法的时间复杂度为( )。
选项:
A:O(logn)
B:O(n)
C:O(n^2)
D:O(1)
答案: 【
6、单选题:
对于长度为 18 的顺序存储的有序表,若采用折半查找,则查找第 15 个元素的比较次数为( )。
选项:
A:6
B:5
C:4
D:3
答案: 【】
7、判断题:
二叉排序树的左右子树都是二叉排序树。
选项:
A:错
B:对
答案: 【】
8、单选题:
若查找每个元素的概率相等,则在长度为 n 的顺序表上查找任一元素的平均查找长度为( )。
选项:
A:n+1
B:(n+1)/2
C:n
D:(n-1)/2
答案: 【】
9、单选题:
具有12个关键字的有序表,折半查找的平均查找长度是()。
选项:
A:4
B:5
C:3.1
D:2.5
答案: 【】
10、单选题:
下面关于哈希查找的说法正确的是()。
选项:
A:哈希函数构造的越复杂越好,因为这样随机性好,冲突小
B:除留余数法是所有哈希函数中最好的
C:不存在特别好和特别坏的哈希函数,要视情况而定
D:若需要在一个哈希表中删去一个元素,不管何种方法解决冲突都只要将该元素删去即可
答案: 【】
11、单选题:
将10个元素散列到长度为100000的哈希表中,则()产生冲突。
选项:
A:一定不会
B:一定会
C:仍可能会
答案: 【】
12、判断题:
完全二叉树肯定是平衡二叉树。
选项:
A:错
B:对
答案: 【
13、单选题:
查找n个元素的有序表时,最有效的查找方法是()。
选项:
A:二叉排序树
B:分块查找
C:折半查找
D:顺序查找
答案: 【
14、单选题:
当在一个有序顺序存储表中查找一个数据时,既可用折半查找,也可以用顺序查找,但前者比后者的查找速度()。
选项:
A:取决于表递增还是递减
B:一定快
C:大部分情况下快
D:一定慢
答案: 【】
15、判断题:
有n个数据存在在一维数组a中,进行顺序查找时,这n个数据的排列有序或无序其平均查找长度不同。
选项:
A:对
B:错
答案: 【】
16、判断题:
n个结点的二叉排序树有多种形态,其中高度最小的二叉排序树是最佳的。
选项:
A:错
B:对
答案: 【】
17、单选题:
假定有k个关键字互为同义词,若用线性探测法把这k个关键字存入哈希表中,至少要进行()次探测。
选项:
A:k(k+1)/2
B:k
C:k+1
D:k-1
答案: 【
18、单选题:
对包含N个元素的哈希表进行查找,平均查找长度为
选项:
A:O(logN)
B:O(N)
C:不确定
D:O(1)
答案: 【
19、单选题:
含有25个结点的二叉排序树上,查找关键字为35的结点,则依次比较的关键字序列有可能是
选项:
A:18,36,28,46,35
B:46,36,18,28,35
C:46,28,18,36,35
D:28,36,18,46,35
答案: 【】
第八章 单元测试
1、单选题:
如果对n个元素进行直接选择排序,则进行任一趟排序的进程中,为寻找最小值元素所需要的时间复杂度为()
选项:
A:O(n2)
B:O(1)
C:O(n)
D:O(logn)
答案: 【】
2、单选题:
下列排序算法中,其中( )是稳定的。
选项:
A:快速排序,冒泡排序
B:简单选择排序,归并排序
C:快速排序,堆排序
D: 归并排序,冒泡排序
答案: 【
3、单选题:
下列序列中,( )是执行第一趟快速排序后所得的序列。
选项:
A:[27,38,18] 49 [93,73]
B:[27,38,93] 49 [18,73]
C:[27,38,73] 49 [93,18]
D:[93,38,18] 49 [27,73]
答案: 【】
4、单选题:
(15,9,7,8,20,-1,4)进行排序,第一趟排序后的序列变为(-1,9,7,8,20,15,4),则采用的排序方法是( )。
选项:
A:希尔排序
B:直接插入排序
C:简单选择排序
D:快速排序
答案: 【 】
5、单选题:
从未排序序列中依次取出元素与已排序序列中的元素进行比较,将其放入已排序序列的正确位置上的排序方法称为( )。
选项:
A:插入排序
B:选择排序
C:堆排序
D:希尔排序
答案: 【
6、单选题:
从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端的方法,称为( )。
选项:
A:选择排序
B:冒泡排序
C:快速排序
D:直接插入排序
答案: 【
7、单选题:
对m个不同的关键字由小到大进行冒泡排序,当( )时比较的次数最多。
选项:
A:从小到大排列
B:元素基本有序
C:从大到小排列
D:元素无序
答案: 【
8、单选题:
一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为()
选项:
A:40,38,46,56,79,84
B:40,38,46,84,56,79
C:38,40,46,56,79,84
D:40,38,46,79,56,84
答案: 【
】
9、单选题:
希尔排序又称缩小增量排序,其最后一趟排序的增量为( )。
选项:
A:3
B:0
C:2
D:1
答案: 【】
10、判断题:
希尔排序是稳定的排序算法。
选项:
A:错
B:对
答案: 【】
11、单选题:
设有1000个无序的元素,希望用最快的速度的选出其中前10个最大的元素,最好选用()的排序法。
选项:
A:冒泡排序
B:快速排序
C:选择排序
D:堆排序
答案: 【
】
12、单选题:
对一组数据{84,45,20,10,16}排序,数据的排列次序在排序过程中的变化为:
(1){84,45,20,10,16}
(2){10,45,20,84,16}
(3){10,16,20,84,45} (4){10,16,20,45,84} 该排序算法是以下哪种()
选项:
A: 直接插入排序
B: 冒泡排序
C: 快速排序
D: 简单选择排序
答案: 【
13、单选题:
归并排序中,归并的趟数是()。
选项:
A:O(n)
B:O(nlogn)
C:O(logn)
D:O(n*n)
答案: 【】
14、判断题:
排序的稳定性是指排序算法中的比较次数保持不变,且算法能够终止。
选项:
A:对
B:错
答案: 【】
15、判断题:
快速排序的速度在所有排序方法中为最快,而且所需附加空间也最少。
选项:
A:对
B:错
答案: 【】
16、多选题:
排序趟数与序列的原始状态有关的排序方法是( )排序法。
选项:
A:冒泡
B:选择
C:快速
D:插入
答案: 【
17、多选题:
下列内部排序算法中:其比较次数与序列初态无关的算法是( )。
选项:
A:快速排序
B:简单选择排序
C:二路归并排序
D:直接插入排序
答案: 【 】
18、判断题:
归并排序辅助存储为O(1)。
选项:
A:错
B:对
答案: 【】
19、判断题:
堆肯定是一棵平衡二叉树。
选项:
A:对
B:错
答案: 【】
20、单选题:
下列排序算法中( )排序在一趟结束后不一定能选出一个元素放在其最终位置上。
选项:
A:归并
B:冒泡
C:堆
D:选择
答案: 【】
请先
!