孙夫雄数据结构习题模板.docx
《孙夫雄数据结构习题模板.docx》由会员分享,可在线阅读,更多相关《孙夫雄数据结构习题模板.docx(53页珍藏版)》请在冰豆网上搜索。
![孙夫雄数据结构习题模板.docx](https://file1.bdocx.com/fileroot1/2022-12/16/f0729c97-851c-493c-a134-058362d3a360/f0729c97-851c-493c-a134-058362d3a3601.gif)
孙夫雄数据结构习题模板
数据结构习题
一、单选题
1.研究数据结构就是研究
A)数据的逻辑结构
B)数据的逻辑结构和存储结构
C)数据的存储结构
D)数据的逻辑结构、存储结构及其数据在运算上的实现
2.下面关于算法的说法,错误的是。
A)算法最终必须由计算机程序实现×
B)为解决某问题的算法与为该问题编写的程序含义是相同的
程序=算法+数据结构
C)算法的可行性(确定性)是指指令不能有二义性
D)以上几个都是错误的
3.计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备5个特性输入、输出、。
A)可执行性、可移植性和可扩充性
B)可执行性、有穷性和确定性
C)确定性、有穷性和稳定性
D)易读性、稳定性和确定性
4.以下属于逻辑结构的概念是。
A)顺序表
B)哈希表
C)有序表
D)单链表
5.具有线性结构的数据结构是。
A)图
B)树
C)广义表
D)栈
6.数据的存储结构包括顺序、链接、散列和种基本类型。
A)向量
B)数组
C)集合
D)索引
7.根椐数据元素之间关系的不同特性,以下4类基本逻辑结构反映了4类基本数据组织形式。
下列解释错误的是。
A)集合中任何两个结点之间都有逻辑关系,但组织形式松散
B)线性结构中结点按逻辑关系依次存储成一行
C)树型结构具有分支、层次特性,其形态有点像自然界中的树
D)图状结构中各个结点按逻辑关系互相缠绕,任何两个结点都可以邻接
8.在数据结构中,从逻辑上可以把数据结构分成。
A)动态结构和静态结构
B)紧凑结构和非紧凑结构
C)线性结构和非线性结构
D)内部结构和外部结构
9.与数据元素本身的形式、内容、相对位置、个数无关的是数据的。
A)存储结构
B)存储实现
C)逻辑结构
D)运算实现
10.以下说法错误的是。
A)程序设计的实质是算法设计
B)数据的逻辑结构是数据的组织形式,基本运算规定了数据的基本操作方式
C)运算实现是完成运算功能的算法或这些算法的设计
D)算法设计思想总是与数据的某种相应存储形式相联系
11.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用存储方式最节省运算时间。
A)单链表
B)仅有头指针的单循环链表
C)双链表
D)仅有尾指针的单循环链表
12.单链表的主要优点是。
A)便于随机查询
B)存储密度高
C)逻辑上相邻的元素在物理上也是相邻的
D)插入和删除比较方便
13.线性表采用链式存储时,其地址。
A)必须连续
B)一定不连续
C)部分连续
D)连续与否均可
14.对于一个线性表,既要求能够较快地进行插入和删除,又要求存储结构能够反映数据元素之间的逻辑关系,则应该。
A)以顺序方式存储
B)以链接方式存储
C)以散列方式存储
D)以上均可
15.若线性表中最常用的操作是取第i个的前趋元素,采用存储方式最节省时间。
A)顺序表
B)单链表
C)双链表
D)单循环链表
16.若用单链表来表示队列,则应该选用。
A)带尾指针的非循环链表
B)带尾指针的循环链表
C)带头指针的非循环链表
D)带头指针的循环链表
17.若用一个大小为6的数组来实现循环队列,且当rear和front的值分别为0和3。
从队列中出队一个元素,再进队两个元素后,rear和front的值分别为
A)1和5
B)2和4
C)4和2
D)5和1
18.设栈的输入序列是(1、2、3,4),则不可能输出的序列。
A)1243
B)2134
C)1432
D)4312
19.一个栈的输入序列为12345,则下列序列中不可能是栈的输出序列的是。
A)23415
B)54132
C)23145
D)15432
20.设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的序列是e2、e4、e3、e6、e5、e1,则栈S的容量至少应该是。
A)6
B)4
C)3
D)2
21.一般情况下,将递归算法转换成等价的非递增归算法应该设置。
A)堆栈
B)队列
C)堆栈或队列
D)数组
22.设栈的输入序列是1、2、…、n,若输出序列的第一个元素是n,则第i个输出元素。
A)不确定
B)n-i+l
C)c
D)n-i
23.假定一个顺序循环队列的队首和队尾指针分别用front和rear表示,则判队空的条件是。
A)front+1==rear
B)front==rear+1
C)front==O
D)front==rear
24.假定一个顺序循环队列存储于数组a[n]中,其队首和队尾指针分别用front和rear表示,则判断队满的条件是。
A)(rear-1)%n==front
B)rear==(front-1)%/n
C)(rear+1)%n==front
D)rear==(front+1)%/n
25.采用数据结构设计一个判别表达式中左、右括号是否配的算法最佳。
A)线性表的顺序存储结构
B)队列
C)线性表的链式存储结构
D)栈
26.在下列算法描述中,涉及到队运算的算法是。
A)表达式求值算法
B)深度优先搜索
C)二叉树前中后序遍历
D)广度优先搜索
27.当利用大小为N的数组存储顺序循环队列时,该队列的最大长度为。
A)N-2
B)N-1
C)N
D)N+l
28.链栈与顺序栈相比有一个明显的优点,即。
A)插入操作更加方便
B)通常不会出现栈满的情况
C)不会出现栈空的情况
D)删除操作更加方便
29.一棵非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足。
A)所有的结点均无左孩子
B)所有的结点均无右孩子
C)只有一个叶子结点
D)是任意一棵二叉树
30.一棵完全二叉树上有1001个结点,其中叶子结点的个数是。
A)250
B)500
C)505
D)501
31.以下说法正确的是。
A)若一个树叶是某二叉树前序遍历序列中的最后一个结点,则它必是该子树后序遍历序列中的最后一个结点
B)若一个树叶是某二叉树前序遍历序列中的最后一个结点,则它必是该子树中序遍历序列中的最后一个结点
C)在二叉树中,具有两个子女的父结点,在中序遍历序列中,它的后继结点最多只能有一个子女结点
D)在二叉树中,具有一个子女的父结点,在中序遍历序列中,它没有后继子女结点
32.以下说法错误的是。
A)哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近
B)若一个二叉树的树叶是某子树中序遍历序列中的第一个结点,则它必是该子树后序遍历序列中的第一个结点
C)己知二叉树的前序遍历和后序遍历并不能惟一地确定这棵树,因为不知道树的根结点是哪一个
D)在前序遍历二叉树的序列中,任何结点其子树的所有结点都是直接跟在该结点之后的
33.二叉树在线索化后,仍不能有效求解的问题是。
A)前序线索二叉树中求前序后继
B)中序线索二叉树中求中序后继
C)中序线索二叉树中求中序前趋
D)后序线索二叉树中求后序后继
34.若二叉树采用链式存储结构,要交换其所有分支结点左、右子树的位置,利用遍历方法最合适。
A)前序
B)中序
C)后序
D)层次
35.一棵有124个叶结点的完全叉树,最多有个结点。
A)247
B)248
C)249
D)250
36.设a、b为一棵二叉树上的两个结点。
在中序遍历时,a在b前面的条件是
A)a在b的右方
B)a在b的左方
C)a是b的祖先
D)a是b的子孙
37.在一棵具有n个结点的完全二叉树中,分枝结点的最大编号为。
A)((n+1)/2)下限取整
B)((n-1)/2)下限取整
C)(n/2)下限取整
D)(n/2)上限取整
38.在N个结点的线索二叉树中,线索的数目为。
A)N-1
B)N
C)N+1
D)2N
39.设深度为K的二叉树上只有度为0和2的结点,则这类二叉树上所含的结点总数至少为。
A)K+1
B)2K
C)2K-1
D)2K+1
40.设有13个值,用它们组成一棵哈夫曼树,则该哈夫曼树共有个结点。
A)13
B)12
C)26
D)25
41.以下说法错误的是。
A)存在这样的二叉树,对它采用任何次序遍历其结点访问序列均相同
B)二叉树是树的特殊情形
C)由树转换成二叉树,其根结点的右子树总是空的
D)在二叉树只有一棵子树的情况下也要明确指出该子树是左子树还是右子树
42.若二叉树是则从二叉树的任一结点出发到根的路径上所经过的结点序列按其关键字有序。
A)二叉排序树
B)哈夫曼树
C)堆
D)退化二叉树
43.一棵有n个结点的二叉树,按层次从上到下,同一层从左到右的顺序存储在一维数组A[1..n)中,则二叉树中第i个结点(i从1开始用上述方法编号)的右孩子在数组A中的位置是。
A)A[2i](2i≤n
B)A[2i+1)(2i+1≤n)
C)A[i/2]
D)条件不充分,无法确定
44.将有关二叉树的概念推广到三叉树,则一棵有244个结点的完全三叉树的高度是。
A)4
B)5
C)6
D)7
45.下列有关二叉树的说法正确的是。
A)二叉树的度为2
B)一棵二叉树度可以小于2
C)二叉树中至少有一个结点的度为2
D)二叉树中任一个结点的度都为2
46.某二叉树中序序列为ABCDEFG,后序序列为BDCAFGE,则前序序列是。
,
A)EGFACDB
B)EACBDGF
C)EAGCFBD
D)上面的都不对
47.对二叉排序树进行遍历,可以得到该二叉树所有结点构成的排序序列
A)前序
B)中序
C)后序
D)按层次
48.的遍历仍需要栈的支持。
A)前序线索树
B)中序线索树
C)后序线索树
D)层次遍历
49.在一棵深度为h的完全二叉树中,所含结点的个数不小于。
A)2h
B)2h+1
C)2h-1
D)2h-1
50.在一棵具有n个结点的二叉树第i层上,最多具有个结点。
A)2i
B)2i+1
C)2i-1
D)2n
51.树最适合用来表示。
A)有序数据元素
B)无序数据元素
C)元素之间具有分支层次关系的数据
D)元素之间无联系的数据
52.以下说法错误的是。
A)一般在哈夫曼树中,权值越大的叶子离根结点越近
B)哈大曼树中没有度数为1的分支结点
C)若初始森林中共有n棵二叉树,最终求得的哈夫曼树中共有2n-1个结点
D)若初始森林中共有n棵二叉树,进行2n-1次合并后才能剩下最终的哈夫曼树
53.以下说法错误的是。
A)二叉树可以是空集
B)二叉树的任一结点都可以有两棵子树
C)二叉树与树具有相同的树形结构
D)二叉树中任一结点的两棵子树有次序之分
54.某二叉树的前序序列和后序序列正好相反,则该二叉树一定是的二叉树。
A)空或只有一个结点
B)任一结点无左子树
C)高度等于其结点数
D)任一结点无右子树
55.设无向图的顶点个数为n,则该无向图最多有条边。
A)n-1
B)n(n-1)/2
C)n(n+1)/2
D)0
E)n2
56.采用邻接表存储的图,其深度优先遍历类似于二叉树的。
A)中序遍历
B)先序遍历
C)后序遍历
D)按层次遍历
57.采用邻接表存储的图,其广度优先遍历类似于二叉树的。
A)按层次遍历
B)中序遍历
C)后序遍历
D)先序遍历,
58.一个图中包含有七个连通分量,若按深度优先(DFS)遍历,必须调用次深度优先遍历算法。
A)k
B)1
C)k-1
D)k+1
59.下列说法中不正确的是
A)无向图中的极大连通子图称为连通分量
B)连通图的广度优先搜索中一般要采用队列来暂存刚访问过的顶点
C)图的深度优先搜索中一般要采用栈来暂存刚访问过的顶点
D)有向图的遍历不可采用广度优先搜索方法
60.具有n个顶点的有向图最多有条边。
A)n
B)n(n-1)
C)n(n+1)
D)n2
61.在有向图G的拓扑序列中,若顶点Vi在顶点Vj之前,则下列情况下不可能出现的是。
A)G中有弧
B)G中有一条从Vi到Vj的路径
C)G中没有弧
D)G中有一条从Vj到Vi的路径
62.一个n个顶点的连通无向图,其边的个数至少为。
A)n-1
B)n
C)n+l
D)nlog2n
63.下列说法中,正确的有。
A)最小生成树也是哈夫曼树。
B)最小生成树惟一
C)普里姆(Prim)最小生成树算法时间复杂度为O(n2)
D)克鲁斯卡尔(Kruskal)最小生成树算法比普里姆算法更适合于边稠密的网
64.判定一个有向图是否存在回路,除了可以利用拓扑排序的方法外,还可以利用。
A)求关键路径的方法
B)求最短路径的Dijkstra方法
C)深度优先遍历算法
D)广度优先遍历算法
65.在一个具有n个顶点的有向图中,若所有顶点的出度之和为s,则所有顶点的入度之和为。
A)s
B)s-1
C)s+l
D)n
66.在一个无向图中,若两个顶点之间的路径长度为k条边,则该路径上的顶点数为。
A)k
B)k+l
C)k+2
D)2k
67.一个有n个顶点的无向连通图,它所包含的连通分量个数为。
A)0
B)1
C)n
D)n+1
68.对于一个有向图,若一个顶点的入度为k1、出度为k2,则对应邻接表中该顶点单链表中的结点数为。
A)kl
B)k2
C)k1-k2
D)k1+k2
69.对于一个有向图,若一个顶点的入度为k1、出度为k2,则对应逆邻接表中该顶点单链表中的结点数为。
A)kl
B)k2
C)k1-k2
D)k1+k2
70.对于一个无向图,下面的说法是正确的。
A)每个顶点的入度等于出度
B)每个顶点的度等于其入度与出度之和
C)每个顶点的入度为0
D)每个顶点的出度为0
71.为了方便地对图状结构的数据进行存取操作,则其中数据存储结构宜采用。
A)顺序存储
B)链式存储
C)索引存储
D)散列存储
72.设有一个按各元素的值排好序的线性表且长度大于2,对给定的值X,分别用顺序查找法和二分查找法查找一个与K相等的元素,比较次数分别是s和b:
在查找不成功的情况下,正确的s和b的数量关系是。
A)总有s=b
B)总有s>b
C)总有s
D)与K值大小有关
73.若在线性表中采用折半查找法查找元素,该线性表应该。
A)元素按值有序
B)采用顺序存储结构
C)元素按值有序,且采用顺序存储结构
D)元素按值有序,且采用链式存储结构
74.假定有k个关键字互为同义词,若用线性探测法把这k个关键字存入散列表中,至少要进行次探测。
A)k-1次
B)k次
C)k+1次
D)k(k+1)/2次
75.设散列地址空间0~m-1,k为关键字,用p去除k,将余数作为k的散列地址(h(k)=k%p),为了减少发生冲突的可能性,一般取P为。
A)小于m的最大奇数
B)小于m的最大素数
C)小于m的最大偶数
D)小于m的最大合数
76.设散列表的长m=14,散列函数为h(k)=k%11,表中已有4个记录(如图所示)如果用二次探测再散列来处理冲突,则关键字为49的记录其存储地址是。
012345678910111213
15
38
61
84
图散列表
A)8
B)3
C)5
D)9
77.从具有n个结点的二叉排序树中查找一个元素时,最坏情况下的时间复杂性。
A)O(n)
B)O
(1)
C)O(log2n)
D)O(n2)
78.下面关于二叉排序树论述中,错误的是。
A)当所有结点的权值都相等时,用这些结点构造的二叉排序树除根结点外只有右子树
B)中序遍历二叉排序树的结点就可以得到排好序的结点序列
C)任一二叉排序树的平均查找时间都小于用顺序查找法查找同样结点的线性表的平均查找时间
D)对两棵具有相同关键字集合而形状不同的二叉排序树,按中序遍历得到的序列是一样的
79.以下说法错误的是。
A)散列法存储的基本思想是由关键码值决定数据的存储地址
B)散列表的结点中只包含数据元素自身的信息,不包含任何指针
C)装填因子是散列法的一个重要参数,它反映了散列表的装填程度
D)散列表的查找效率主要取决于散列表造表时选取的散列函数和处理冲突的方法
80.设有一个用线性探测法解决冲突得到的散列表如图所示
012345678910
13
25
80
16
17
6
14
图散列表
散列函数为H=%11,若要查找元素14,探测的次数是。
A)8
B)9
C)3
D)6
81.如果要求一个线性表既能较快地查找,又能适应动态变化的要求,则可采用的查找方法是。
A)分块查找
B)顺序查找
C)折半查找
D)基于属性查找
82.有数据{53,30,37,12,45,24,96},从空二叉树开始逐个插入数据来形成二叉排序树,若希望高度最小,则应选择下面哪个序列输入。
A)45,24,53,12,37,96,30
B)37,24,12,30,53,45,96
C)12,24,30,37,45,53,96
D)30,24,12,37,45,96,53
83.建立序列{50,72,43,85,75,20,35,45,65,30}对应的二叉排序树以后,查找元素35要进行元素间的比较
A)4次
B)5次
C)7次
D)10次
84.在顺序表(n足够大)中进行顺序查找,其查找不成功的平均长度是。
A)(n+1)/2
B)n/2+l
C)n
D)n+l
85.对线性表进行二分检索时,要求线性表必须。
A)以顺序存储方式存储
B)以链式存储方式存储
C)以顺序存储方式存储且数据有序
D)以链式存储方式存储且数据有序
86.在一棵深度为h的具有n个元素的二叉排序树中,查找所有元素的最长查找长度
A)n
B)log2n
C)(h+1)/2
D)h
87.在散列查找中,平均查找长度主要与有关。
A)散列表长度
B)散列元素个数
C)装填因子
D)处理冲突方法
88.若根据查找表建立长度为m的散列表并采用二次探测处理冲突,假定对—个元素第一次计算的散列地址为d,则第四次计算的散列地址为。
A)(d+1)%m
B)(d-1)%m
C)(d+4)%m
D)(d-4)%m
89.以下说法正确的是。
A)数字分析法需事先知道所有可能出现的键值及所有键值的每一位上各数字分布情况,并且键值的位数比散列地址的位数多
B)除余法要求事先知道全部键值
C)平方取中法需要事先掌握键值的分布情况
D)随机数法适用于键值不相等的场合
90.分块查找的时间效率。
A)低于二分查找
B)高于顺序查找而低于二分查找
C)高于顺序查找
D)低于顺序查找而高于二分查找
91.在一个具有n个结点的单链表中查找值为m的某结点,若查找成功,则平均比较个结点。
A)n
B)n/2
C)(n-1)/2
D)(n+1)/2
92.以下序列不是堆的是。
A)(100,85,98,77,80,60,82,40,20,10,66)
B)(100,98,85,82,80,77,66,60,40,20,10,)
C)(10,20,40,60,66,77,80,82,85,98,100)
D)(100,85,40,77,80,60,66,98,82,10,20,)
93.在文件“局部有序”或文件长度较小的情况下,最佳内部排序方法是
A)直接插入排序
B)冒泡排序
C)简单选择排序
D)归并排序
94.在下列算法中,算法可能出现下列情况:
在最后一趟开始之前,所有的元素都不在其最终的位置上。
A)堆排序
B)冒泡排序
C)插入排序
D)快速排序
95.从未排序的序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在排序序列的合适位置,该排序方法称为排序法。
A)插入
B)选择
C)希尔
D)二路归并
96.下面给出的四种排序法中,排序是不稳定排序法。
A)插入
B)冒泡
C)二路归并
D)堆
97.快速排序在最坏情况下时间复杂度是O(n2),比的性能差。
A)堆排序
B)冒泡排序
C)选择排序
D)二路归并
98.对给出的一组关键字{14,5,19,20,11,19}。
若按关键字非递减排序,第一趟排序结果为{14,5,19,20,11,19},问采用的排序算法是。
A)简单选择排序
B)快速排序
C)希尔排序
D)二路归并排序
99.就排序算法所用的辅助空间而言,堆排序、快速排序、归并排序的关系是。
A)堆排序<快速排序<归并排序
B)堆排序<归并排序<快速排序
C)堆排序>归并排序>快速排序
D)堆排序>快速排序>归并排序
E)巳以上答案都不对
100.假设某文件经过内部排序得到27个初始归并段,若要使多路归并3趟完成,则应取归并的路数为。
A)2
B)3
C)4
D)5
101.下面排序方法中,关键字比较次数与记录的初始排列无关的是。
A)希尔(Shell)排序
B)冒泡排序
C)直接插入排序
D)直接选择排序
102.对记录的关键字集合key={50,26,38,80,70,90,8,30,40,20}进行排序,各趟排序结束时的结果为:
5026388070908304020
5083040209026388070
2683040208050389070
8202630384050708090