《数据结构》期末复习题.docx
《《数据结构》期末复习题.docx》由会员分享,可在线阅读,更多相关《《数据结构》期末复习题.docx(31页珍藏版)》请在冰豆网上搜索。
《数据结构》期末复习题
《数据结构》期末复习题
一、单选题
1.某程序的时间复杂度为(3n+nlog2n+n2+8),其数量级表示为()。
A.O(n)B.O(nlog2n)
C.O(n2)D.O(log2n)
2.队列的插入操作是在()进行。
A.队首B.队尾
C.队前D.对后
3.二叉树上叶结点数等于()。
A.分支结点数加1B.单分支结点数加1
C.双分支结点数加1D.双分支结点数减1
4.每次从无序表中取出一个元素,把它插入到有序表中的适当位置,此种排序方法叫做()排序
A.插入B.交换
C.选择D.归并
5.在一个图中,所有顶点的度数之和等于所有边数的()倍。
A.2B.1
C.3D.4
6.队列的删除操作是在()进行。
A.队首B.队尾
C.队前D.对后
7.当利用大小为N的数组顺序存储一个栈时,假定用top==N表示栈空,则退栈时,用()语句修改top指针。
A.top++;B.top=0;
C.top--;D.top=N;
8.由权值分别为3,6,7,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为()。
A.51B.23
C.53D.74
9.在一棵二叉树中,第4层上的结点数最多为()。
A.31B.8
C.15D.16
10.向堆中插入一个元素的时间复杂度为()。
A.O(log2n)B.O(n)
C.O
(1)D.16O(nlog2n)
11.在一个长度为n的顺序存储的线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移()个元素。
A.n-iB.n-i+1
C.n-i-1D.i
12.在线性表的散列存储中,若用m表示散列表的长度,n表示待散列存储的元素的个数,则装填因子等于()。
A.n/mB.m/n
C.n/(n+m)D.m/(n+m)
13.从一棵B_树删除元素的过程中,若最终引起树根结点的合并,则新树高度是()。
A.原树高度加1B.原树高度减1
C.原树高度D.不确定
14.在稀疏矩阵的带行指针向量的链接存储中,每个行单链表中的结点都具有相同的()。
A.行号B.列号
C.元素值D.地址
15.在一个具有n个顶点的无向图中,要连通所有顶点则至少需要()条边。
A.nB.2n
C.n-1D.n+1
16.某程序的时间复杂度为(10n+nlog2n+n2),其数量级表示为()。
A.O(n)B.O(nlog2n)
C.O(n2)D.O(log2n)
17.在一个长度为n的顺序存储的线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移()个元素。
A.n-iB.n-i+1
C.n-i-1D.i
18.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定()该结点的值。
A.小于B.大于
C.不小于D.大于等于
19.对于一棵具有n个结点的树,该树中所有结点的度数之和为()。
A.n-1B.n
C.n+1D.2n
20.某程序的时间复杂度为(3n+100×log2n+nlog2n),其数量级表示为()。
A.O(n)B.O(nlog2n)
C.O(100)D.O(log2n)
21.设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为()。
A.2,3,5,8,6B.3,2,5,8,6
C.3,2,5,6,8D.2,3,6,5,8
22.根据n个元素建立一棵二叉搜索树时,其时间复杂度大致为()。
A.O(n)B.O(log2n)
C.O(n2)D.O(nlog2n)
23.按照数据逻辑结构的不同,可以将数据结构分成C。
A.动态结构和静态结构B.紧凑结构和非紧凑结构
C.线性结构和非线性结构D.内部结构和外部结构
24.下列关于数据结构的叙述中正确的是A。
A.数组是同类型值的集合
B.递归算法的程序结构比迭代算法的程序结构更为复杂
C.树是一种线性的数据结构
D.用一维数组存储二叉树,总是以先序顺序遍历各结点
25.在计算机的存储器中表示时,物理地址与逻辑地址相同并且是连续的,称之为B
A.逻辑结构B.顺序存储结构
C.链式存储结构D.以上都不对
26.以下关于算法特性的描述中,B是正确的。
(1)算法至少有一个输入和一个输出
(2)算法至少有一个输出但是可以没有输入
(3)算法可以永远运行下去
A.
(1)B.
(2)C.(3)D.
(2)和(3)
27.对顺序存储的线性表(a1,a2,…,an)进行插入操作的时间复杂度是C。
A.O(n)B.O(n-i)C.(n/2)D.O(n-1)
28.链表不具有的特点是A。
A.可随机访问任一元素B.插入和删除时不需要移动元素
C.不必事先估计存储空间D.所需空间与线性表的长度成正比
29.线性链表中各链结点之间的地址C。
A.必须连续B.部分地址必须连续
C.不一定连续D.连续与否无关
30.以下关于链式存储结构的叙述中,C是不正确的。
A.结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构
B.逻辑上相邻的结点物理上不必邻接
C.可以通过计算直接确定第i个结点的存储地址
D.插入、删除操作方便,不必移动结点
31.设依次进入一个栈的元素序列为d,a,c,b,得不到出栈的元素序列为D。
A.dcbaB.acdbC.abcdD.cbda
32.将新元素插入到链式队列中时,新元素只能插入到B。
A.链头B.链尾C.链中
D.第i个位置,i大于等于1,大于等于表长加1
33.设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的顺序是e2、e4、e3、e6、e5、和e1,则栈S容量至少应该是C。
A.6B.4C.3D.2
34.下面D是‘abcd321ABCD’的子串。
A.abcdB.321abC.‘abcABC’D.‘21AB’
35.假设8行10列的二维数组A[1…8,1…10]分别以行序为主序和以列序为主序顺序存储时,其首地址相同,那么以行序为主序时元素a[3,5]的地址与以列序为主序时C
元素相同。
A.a[7,3]B.a[8,3]C.a[1,4]D.ABC都不对
36.数组A[0…5,0…6]的每个元素占5个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5,5]的地址为A。
A.1175B.1180C.1205D.1210
37.下列广义表中,长度为3的广义表为B。
A.(a,b,c,())B.((g),(a,b,c,d,f),())C.(a,(b,(d)))D.((()))
39.若树T有a个度为1的结点,b个度为2的结点,c个度为3的结点,则该树有D个叶结点。
A.1+2b+3cB.a+2b+3cC.2b+3cD.1+b+2c
40.若一棵二叉树有102片叶子结点,则度二叉树度为2的结点数是B。
A.100B.101C.102D.103
41.在有n个叶子结点的霍夫曼树中,其结点总数为:
。
A.nB.2nC.2n+1D.2n-1
42.具有12个结点的完全二叉树有B。
A.5个叶子结点B.5个度为2的结点
C.7个分支结点D.2个度为1的结点
43.设结点x和y是二叉树中的任意两结点,若在先根序列中x在y之前,而后根序列中x在y之后,则x和y的关系是C。
A.x是y的左兄弟B.x是y的右兄弟
C.x是y的祖先D.x是y的后代
44.先序遍历序列与中序遍历序列相同的二叉树为。
A.根结点无左子树的二叉树B.根结点无右子树的二叉树
C.只有根结点的二叉树或非叶子结点只有左子树的二叉树
D.只有根结点的二叉树或非叶子结点只有右子树的二叉树
45.若二叉树T的前序遍历序列和中序遍历序列分别是bdcaef和cdeabf,则其后序遍历序列为A。
A.ceadfbB.feacdbC.eacdfbD.以上都不对
46.设无向图的顶点个数为n,则该图最多有C条边。
A.n-1B.n(n-1)C.n(n-1)/2D.N
47.对于一个有n个顶点和e条边的无向图,若采用邻接表表示,邻接表中的结点总数是C。
A.e/2B.eC.n+2eD.n+e
48.无向图G=(V,E),其中V={a,b,c,d,e,f},E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)}。
对该图进行深度优先遍历,下面不能得到的序列是D。
A.acfdebB.aebdfcC.aedfcbD.abecdf
49.直接插入排序在最好情况下的时间复杂度为B。
A.O(log2n)B.O(n)C.O(nlog2n)D.O(n2)
50.对有n个记录的表作快速排序,在最坏情况,算法的时间复杂度是D。
A.O(n3)B.O(n)C.O(nlog2n)D.O(n2)
30.下面的排序算法中,稳定是A。
A.直接插入排序法B.快速排序法
C.直接选择排序法D.堆排序法
51.数据结构是( )
A.一种数据类型
B.数据的存储结构
C.相互之间存在一种或多种特定关系的数据元素的集合
D.一组性质相同的数据元素的集合
52.在线性表的下列运算中,不改变数据元素之间结构关系的运算是( )
A.插入B.删除
C.排序D.定位
53.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( )
A.3,2,6,1,4,5B.3,4,2,1,6,5
C.1,2,5,3,4,6D.5,6,4,2,3,1
54.二维数组A[8][9]按行优先顺序存储,若数组元素A[2][3]的存储地址为1087,A[4][7]的存储地址为1153,则数组元素A[6][7]的存储地址为( )
A.1207B.1209
C.1211D.1213
55.算法指的是()
A.计算机程序B.计算方法
C.排序算法D.解决问题的有限运算序列
56.在一个单链表中,若q所指结点是p所指结点的前驱结点,若在q与p之间插入一个s所指的结点,则执行()。
As→link=p→link;p→link=s;Bp→link=s;s→link=q;
Cp→link=s→link;s→link=p;Dq→link=s;s→link=p;
57.栈的插入和删除操作在()进行。
A栈顶B栈底C任意位置D指定位置
58.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为()。
A.100B.40C.55D.80
59.将含100个结点的完全二叉树从根这一层开始,每层从左至右依次对结点编号,根结点的编号为1。
编号为47的结点X的双亲的编号为()
A.24 B.25 C.23 D.2无法确定
60.在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为()
A.eB.2eC.n2-eD.n2-2e
61.折半查找要求被查找的表是()
A.键值有序的链接表 B.链接表但键值不一定有序表
C.键值有序的顺序表 D.顺序表但键值不一定有序表
62.设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为()。
A.2,3,5,8,6B.3,2,5,8,6
C.3,2,5,6,8D.2,3,6,5,8
63.线性表采用链式存储时,结点的存储地址()
A.必须是不连续的B.连续与否均可
C.必须是连续的D.和头结点的存储地址相连续
64.设有一个无向图G=(V,E)和G'=(V',E'),如果G'为G的生成树,下面不正确的说法是()
A.G'为G的子图 B.G'为G的一个无环子图
C.G'为G的极小连通子图且V'=V D.G'为G的连通分量
65.在按层次遍历二叉树的算法中,需要借助的辅助数据结构是( )
A.队列B.栈
C.线性表D.有序表
66.在任意一棵二叉树的前序序列和后序序列中,各叶子之间的相对次序关系( )
A.不一定相同B.都相同
C.都不相同D.互为逆序
67.若采用孩子兄弟链表作为树的存储结构,则树的后序遍历应采用二叉树的( )
A.层次遍历算法B.前序遍历算法
C.中序遍历算法D.后序遍历算法
68.若用邻接矩阵表示一个有向图,则其中每一列包含的″1″的个数为( )
A.图中每个顶点的入度B.图中每个顶点的出度
C.图中弧的条数D.图中连通分量的数目
69.图的邻接矩阵表示法适用于表示( )
A.无向图B.有向图
C.稠密图D.稀疏图
70.在对n个关键字进行直接选择排序的过程中,每一趟都要从无序区选出最小关键字元素,则在进行第i趟排序之前,无序区中关键字元素的个数为( )
A.iB.i+1
C.n-iD.n-i+1
13..在n(n>0)个元素的顺序栈中删除1个元素的时间复杂度为( )
A.A.O
(1)B..O(√n)
C.O(nlog2n)D.O(n)
71.若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字b的过程中,先后进行比较的关键字依次为( )
A.f,c,bB.f,d,b
C.g,c,bD.g,d,b
72.以下数据结构中哪一个是非线性结构?
()
A.队列 B.栈C.线性表 D.二叉树
73.若某线性表的常用操作是取第i个元素及其前趋元素,则采用()存储方式最节省时间
A.顺序表 B.单链表
C.双链表 D.单向循环
74.设数组Data[0..m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为()
A.front=(front+1)%(m+1) B.front=(front+1)%m
C.rear=(rear+1)%m D.front=front+1
75.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?
脚注(10)表示用10进制表示。
A.688B.678C.692D.696
76.深度为6(根的层次为1)的二叉树至多有()结点
A.64 B.63 C.31 D.32
77.设某完全无向图中有n个顶点,则该完全无向图中有()条边。
A.n(n-1)/2B.n(n-1)C.n2D.n2-1
78若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行折半查找,则查找A[3]的比较序列的下标依次为()
A.1,2,3B.9,5,2,3
C.9,5,3D.9,4,2,3
79.适于对动态查找表进行高效率查找的组织结构是()
A.有序表B.分块有序表C.二叉排序树D.线性链表
80.下面关于线性表的叙述错误的是()。
A.线性表采用顺序存储必须占用一片连续的存储空间
B.线性表采用链式存储不必占用一片连续的存储空间
C.线性表采用链式存储便于插入和删除操作的实现
D.线性表采用顺序存储便于插入和删除操作的实现
81.设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为()
A.front=front+1B.front=(front+1)%m
C.front=(front-1)%mD.front=(front+1)%(m-1)
82.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为()。
A.100B.40C.55D.80
82.设某棵二叉树中有2000个结点,则该二叉树的最小高度为()。
A.9B.10C.11D.12
84.设有6个结点的无向图,该图至少应有()条边才能确保是一个连通图。
A.5B.6C.7D.8
85.在一个长度为n的顺序线性表中顺序查找值为x的元素时,查找成功时的平均查找长度(即x与元素的平均比较次数,假定查找每个元素的概率都相等)为()。
A.nB.n/2C.(n+1)/2D.(n-1)/2
86.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为()。
A.p->next=p->next->nextB.p=p->next
C.p=p->next->nextD.p->next=p
二、简答题
1.已知一个中缀算术表达式为:
3+4*(25-(6/15))-8@,写出对应的后缀算术表达式。
2.对以下图,试给出一种拓扑序列。
3.空堆开始依次向堆中插入线性表(64,52,12,48,45,26)中的每个元素,请以线性表的形式给出每插入一个元素后堆的状态。
(为小根堆)
4.在一份电文中共使用五种字符:
A,G,F,U,Y,Z,它们的出现频率依次为12,9,18,7,14,11,求出每个字符的哈夫曼编码。
5.试为下列情况选择合适的排序算法:
(1)n=30,且要求最坏情况下速度最快;
(2)n=30,且要求既要快,又要排序稳定;
(3)n=2000,要求平均情况下速度最快;
(4)n=2000,要求最坏情况下速度最快,又要节省存储空间。
6.对于下图,若按照克鲁斯卡尔算法产生最小生成树,写出得到的各条边的次序。
31
23
14
25
5
10
19
8
9
33
13
34
15
7.有七个带权结点,其权值分别为3,7,8,2,6,10,14,试以它们为叶子结点构造一棵哈夫曼树,并计算出带权路径长度WPL。
8。
已知一组记录的排序码为(46,79,56,38,40,80,95,24),写出对其进行快速排序的每一次划分结果。
9.已知一个中缀算术表达式为:
25-(6/15)+(15/8)@,写出对应的后缀算术表达式。
11.一个线性表为B=(12,23,45,57,20,03,78,31,15,36),设散列表为HT[0..12],散列函数为H(key)=key%13并用线性探查法解决冲突,请画出散列表,并计算等概率情况下查找成功的平均查找长度。
12.试述线性表顺序存储和链式存储的各自的有缺点。
16.假设有一个适当大小的栈S,输入栈的序列为A,B,C,D,E。
问:
(1)能否得到下列的输出序列:
①B,C,D,E,A;②E,A,B,C,D;
③E,D,C,B,A。
(2)写出所有可能正确的输出序列(至少5种)。
17.用向量表示的循环队列的队首和队尾位置分别为1和max_size,试给出判断队列为空和为满的边界条件。
●参考答案:
队空条件为max_size==1;
队满的条件为(max_size+1)%MAXSIZE.
18.设一棵二叉树后序遍历序列为DGJHEBIFCA,中序遍历序列为DBGEHJACIF,要求:
(1)画出该二叉树;
(2)写出该二叉树的先序遍历序列;
(3)画出该二叉树对应的森林。
19.对二叉树中的结点按层次顺序(每一层自左向右)进行的访问操作称为二叉树的层次遍历。
现已知一棵二叉树的层次序列为AEBGFDIMH,中序遍历序列为GEFAMDBHI。
请画出该二叉树并写出其先序序列。
若将该二叉树看作是一个森林的孩子—兄弟表示,请画出该森林。
20.已知某通信电文仅由A、B、C、D、E、F这6个字符构成,其出现的频率分别为23、5、14、8、25、7,请给出它们的霍夫曼树及其对应的霍夫曼编码。
21.针对上图分别用卡鲁斯卡尔及普里姆算法给出该图的最小生成树,画出其逻辑结构。
22.总结直接插入排序、折半插入排序、希尔排序、起泡排序、快速排序、简单选择排序、堆排序及归并排序等在最好情况下、最坏情况及平均的时间复杂度,辅助空间复杂度及稳定性。
23.判断下面的每个结点序列是否表示一个堆,如果不是堆,请把它调整为堆。
(1)100,90,80,60,85,75,20,25,10,70,65,50
(2)100,70,50,20,90,75,60,25,10,85,65,80
24.已知一序列(12,70,33,65,24,56,48,92,86,33),问该序列是否是堆?
如果不是,则把它调整为小顶堆。
并问把该序列调整为堆共需要多少次元素间的比较?
多少次元素间的交换。
(
25.假定一个待散列存储的线性表为(37,65,25,73,42,91,45,36,18,75),散列地址空间为0..HT[12],若采用除留余数法构造散列函数和链接法处理冲突,试求出每一元素的散列地址,画出最后得到的散列表,求出平均查找长度。
26.有一棵二叉树如下图所示,分别指出其前序、中序遍历的结点序列。
27.有二叉树先序序列为:
ABCDEF,中序序列为:
CBAEDF,试画出该二叉树。
28.给定表(40,36,56,6,64,73,8,23),按数据元素在表中的次序构造一棵二叉查找树,并求其平均查找长度。
29.试分别画出具有3个结点的树和有具有3个结点的二叉树的所有不同形态。
30.分别用普里姆算法(Prim)和克鲁斯卡尔(kruskal)算法求出下图的最小生成树(要求写出步骤)。
31.根据下图给出的二叉树,求出先序、中序和后序遍历的结点序列。
33.把下图中的二叉树转化为森林。
34.已知数据序列为12,5,9,20,6,31,24,对该数据序列进行排序,试写出冒泡排序每趟的结果。
35.已知一棵二叉树的中序和前序序列如下,求该二叉树的后序序列。
中序序列:
c,b,d,e,a,g,i,h,j,f
前序序列:
a,b,c,d,e,f,g,h,i,j
36.给定二叉树的中序遍历结果为abc,请画出能得到此中序遍历结果的二叉树的所有形态。
37.请画出下面无向图的邻接矩阵和邻接表。
38.已知序列{15,18,60,41,6,32,83,75,95}。
请给出采用快速排序法对该序列作升序排序时的每一趟的