数据结构复习题及参考答案文档格式.docx
《数据结构复习题及参考答案文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构复习题及参考答案文档格式.docx(37页珍藏版)》请在冰豆网上搜索。
23.中缀表达示3+X*(2.4/5-6)所对应的后缀表达示为______________。
24.在一棵高度为h的3叉树中,最多含有_______结点。
25.分析下面算法(程序段),给出最大语句频度,该算法的时间复杂度是____。
for(i=0;
i<
n;
i++)
for(j=0;
j<
j++)
A[i][j]=0;
26.空串是____,其长度等于。
27.一个图的表示法是唯一的,而表示法是不唯一的。
28.在一个单链表中p所指结点之前插入一个s(值为e)所指结点时,可执行如下操作:
q=head;
while(q->
next!
=p)q=q->
next;
s=newNode;
s->
data=e;
q->
next=;
//填空
s->
29.在一个单链表中删除p所指结点的后继结点时,应执行以下操作:
q=p->
p->
next=____;
delete;
30.两个串相等的充分必要条件是____。
31.二维数组A[10][20]采用列序为主方式存储,每个元素占一个存储单元并且A[0][0]的存储地址是200,则A[6][12]的地址是____。
32.二维数组A[10..20][5..10]采用行序为主方式存储,每个元素占4个存储单元,并且A[10][5]的存储地址是1000,则A[18][9]的地址是____。
33.求下列广义表操作的结果:
(1)GetTail[GetHead[((a,b),(c,d))]];
(2)GetTail[GetHead[GetTail[((a,b),(c,d))]]]
34.已知一个有向图的邻接矩阵表示,计算第i个结点的入度的方法是____。
35.已知一个图的邻接矩阵表示,删除所有从第i个结点出发的边的方法是____。
36.在利用快速排序方法对一组记录(54,38,96,23,15,72,60,45,83)进行快速排序时,递归调用而使用的栈所能达到的最大深度为____,共需递归调用的次数为____,其中第二次递归调用是对____一组记录进行快速排序。
37.在堆排序,快速排序和归并排序中,若只从存储空间考虑,则应首先选取____方法,其次选取____方法,最后选取____方法;
若只从排序结果的稳定性考虑,则应选取____方法;
若只从平均情况下排序最快考虑,则应选取____方法;
若只从最坏情况下排序最快并且要节省内存考虑,则应选取____方法。
二、选择题:
1.队列的特点是【】。
A.先进后出B.先进先出C.任意位置进出D.前面都不正确
2.有n个记录的文件,如关键字位数为d,基数为r,则基数排序共要进行【】遍分配与收集。
A.nB.dC.rD.n-d
3.在二叉树结点的先序序列、中序序列和后序序列中,所有叶子结点的先后顺序【】。
A.都不相同B.完全相同
C.先序和中序相同,而与后序不同D.中序和后序相同,而与先序不同
4.设有198个初始归并段,如采用K-路平衡归并三遍完成排序,则K值最大为【】。
A.12B.13C.14D.15
5.下面关于广义表的叙述中,不正确的是【】。
A.广义表可以是一个多层次的结构B.广义表至少有一个元素
C.广义表可以被其他广义表所共享D.广义表可以是一个递归表
6.设二叉树根结点的层次为0,一棵深度(高度)为k的满二叉树和同样深度完全二叉树各有f个结点和c个结点,下列关系式不正确的是【】。
A.f>
=cB.c>
fC.f=2k+1-aD.c>
sk-1
7.从L=((apple,pear),(orange,banana))中,取出banana元素的表达式为【】。
A.head(tail(L))B.head(head(tail(L)))
C.tail(head(tail(L)))D.head(tail(head(tail(L))))
8.下列文件的物理结构中,不利于文件长度动态增长的文件物理结构是【】。
A.顺序结构B.链接结构C.索引结构D.Hash结构
9.在数据结构中,数据元素可由【】。
A.实体B.域C.数据项D.字段
10.对于有n个顶点的有向图,由弗洛伊德(FloyD)算法求每一对顶之间的最短路径的时间复杂度是【】。
A.O
(1)B.O(n)C.O(n)D.O(n3)
11.对n个记录的文件进行快速排序,所需要的辅助存储空间为【】。
A.O
(1)B.O(log2n)C.O(n)D.O(n2)
12.哈夫曼树中一定不存在【】。
A.度为0的结点B.度为1的结点C.度为2的结点D.带权的结点
13.下述哪一条是顺序存储方式的优点?
【】
A.存储密度大B.插入和删除运算方便
C.获取符合某种条件的元素方便D.查找运算速度快
14.有一个二维数组A[m][n],假设A[0][0]存放位置在600(10),A[3][3]存放位置在678(10),每个元素占一个空间,问A[2][3](10)存放在什么位置?
(脚注(10)表示用10进制表示,m>
3)
【】。
A.658B.648C.633D.653
15.列关于二叉树遍历的叙述中,正确的是【】。
A.若一个叶子是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历最后一个结点
B.若一个结点是某二叉树的前序遍历最后一个结点,则它必是该二叉树的中序遍历的最后一个结点
C.若一个结点是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序最后一个结点
D.若一个树叶是某二叉树的前序最后一个结点,则它必是该二叉树的中序遍历最后一个结点
16.层二叉树的结点总数最多为【】。
A.2k-1B.2k+1C.2K-1D.2k-1
17.线性表进行二分法查找,其前提条件是【】。
A.线性表以链接方式存储,并且按关键码值排好序
B.线性表以顺序方式存储,并且按关键码值的检索频率排好序
C.线性表以顺序方式存储,并且按关键码值排好序
D.线性表以链接方式存储,并且按关键码值的检索频率排好序
18.n个记录进行堆排序,所需要的辅助存储空间为【】。
A.O(1og2n)B.O(n)C.O
(1)D.O(n2)
19.线性表(7,34,77,25,64,49,20,14)进行散列存储时,若选用H(K)=K%7作为散列函数,则散列地址为0的元素有【】个。
A.1B.2C.3D.4
20.列关于数据结构的叙述中,正确的是【】。
A.数组是不同类型值的集合
B.递归算法的程序结构比迭代算法的程序结构更为精炼
C.树是一种线性结构
D.用一维数组存储一棵完全二叉树是有效的存储方法
21.以下数据结构中哪一个是线性结构?
A.有向图B.队列C.线索二叉树D.B树
22.在一个单链表HL中,若要在当前由指针p指向的结点后面插入一个由q指向的结点,则执行如下【】语句序列。
A.p=q;
p->
next=qB.p->
next=q;
q->
next=p
C.p->
next=q->
p=q;
D.q->
next=p->
23.【】不是队列的基本运算。
A.在队列第i个元素之后插入一个元素B.从队头删除一个元素
C.判断一个队列是否为空D.读取队头元素的值
24.若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为【】。
A.iB.n=iC.n-i+1D.不确定
25.栈的特点是【】,队列的特点是【】。
A.先进先出B.先进后出
26.设有两个串p和q,求q在p中首次出现的位置的运算称作【】。
A.连接B.模式匹配C.求子串D.求串长
27.二维数组A中,每个元素A[i][j]的长度为3个字节,行下标i从0到7,列下标j从0到9,从首地址SA开始连续存放在存储器内,该数组按列存放时,元素A[4][7]的起始地址为【】。
A.SA+141B.SA+180C.SA+222D.SA+225
28.某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,则其后序遍历的结点访问顺序是【】。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
29.在一非空二叉树的中序遍历序列中,根结点的右边【】。
A.只有右子树上的所有结点B.只有右子树上的部分结点
C.只有左子树上的部分结点D.只有左子树上的所有结点
30.具有6个顶点的无向图至少应有【】条边才能确保是一个连通图。
A.5B.6C.7D.8
31.二分查找和二叉排序树的时间性能【】。
A.相同B.不相同
32.采用二分查找方法查找长度为n的线性表时,每个元素的平均查找长度为【】。
A.O(n2)B.O(nlog2n)C.O(n)D.O(log2n)
33.在待排序的元素序列基本有序的前提下,效率最高的排序方法是【】。
A.插入排序B.选择排序C.快速排序D.归并排序
34.下述几种排序方法中,要求内存量最大的是【】。
35.设有两个串p和q,求q在p中首次出现的位置的运算称作【】。
A.连接B.模式匹配C.求子串D.求串长
36.二维数组A中,每个元素A[i][j]的长度为3个字节,行下标i从0到7,列下标j从0到9,从首地址SA开始连续存放在存储器内,该数组按列存放时,元素A[4][7]的起始地址为【】。
A.SA+141B.SA+180C.SA+222D.SA+225
37.某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,则其后序遍历的结点访问顺序是【】。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
38.在一非空二叉树的中序遍历序列中,根结点的右边【】。
A.只有右子树上的所有结点B.只有右子树上的部分结点
39.具有6个顶点的无向图至少应有【】条边才能确保是一个连通图。
40.二分查找和二叉排序树的时间性能【】。
A.相同B.不相同C.可能相同D.不确定
41.采用二分查找方法查找长度为n的线性表时,每个元素的平均查找长度为【】。
A.O(n2)B.O(nlog2n)C.O(n)D.O(log2n)
42.在待排序的元素序列基本有序的前提下,效率最高的排序方法是【】。
43.下面的序列中【】是大顶堆。
A.1,2,8,5,3,9,10,4B.1,5,10,6,7,8,9,2C.9,8,7,6,4,8,2,1D.9,8,7,6,5,4,3,1
44.对一个算法的评价,不包括如下【】方面的内容。
A.健壮性和可读性B.并行性C.正确性D.时空复杂度
45.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行【】。
A.p->
next=HL->
HL->
next=pB.p->
next=HL;
HL=p
p=HLD.HL=p;
next=HL
46.对线性表,在下列哪种情况下应当采用链表表示?
【】
A.经常需要随机地存取元素B.经常需要进行插入和删除操作
C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变
47.一个栈的输入序列为123,则下列序列中不可能是栈的输出序列的是【】。
A.231B.321C.312D.123
48.每一趟都能选出一个元素放在其最终位置上,并且不稳定的排序算法是【】。
A.冒泡排序B.简单选择排序C.希尔排序D.直接插入排序
49.采用开放定址法处理散列表的冲突时,其平均查找长度【】。
A.低于链接法处理冲突B.高于链接法处理冲突
C.与链接法处理冲突相同D.高于二分查找
50.若需要利用形参直接访问实参时,应将形参变量说明为【】参数。
A.值B.函数C.指针D.引用
51.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的【】。
A.行号B.列号C.元素值D.非零元素个数
52.快速排序在最坏情况下的时间复杂度为【】。
A.O(log2n)B.O(nlog2n)C.O(n)D.O(n2)
53.从二叉搜索树中查找一个元素时,其时间复杂度大致为【】。
A.O(n)B.O
(1)C.O(log2n)D.O(n2)
54.设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为【】。
A.O(log2n)B.O
(1)C.O(n2)D.O(n)
55.设一棵m叉树中度数为0的结点数为N0,度数为1的结点数为Nl,……,度数为m的结点数为Nm,则N0=【】。
A.Nl+N2+……+NmB.l+N2+2N3+3N4+……+(m-1)Nm
C.N2+2N3+3N4+……+(m-1)NmD.2Nl+3N2+……+(m+1)Nm
56.二维数组A中,每个元素A的长度为3个字节,行下标i从0到7,列下标j从0到9,从首地址SA开始连续存放在存储器内,该数组按行存放时,数组元素A[7][4]的起始地址为【】。
A.SA+141B.SA+144C.SA+222D.SA+225
57.如果某二叉树的前根次序遍历结果为stuwv,中序遍历为uwtvs,那么该二叉树的后序为【】。
A.uwvtsB.vwutsC.wuvtsD.wutsv
58.深度为5的二叉树至多有【】个结点。
A.16B.32C.31D.10
59.在一个无向图中,所有顶点的度数之和等于所有边数的【】倍。
A.1/2B.1C.2D.4
60.采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为【】。
A.nB.n/2C.(n+1)/2D.(n-1)/2
61.采用二分查找方法查找长度为n的线性表时,每个元素的平均查找长度为【】。
A.O(n2)B.O(nlog2n)C.O(n)D.O(log2n)
62.下述几种排序方法中,要求内存量最大的是【】。
63.排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为【】。
A.希尔排序B.起泡排序C.插入排序D.选择排序
64.对于长度为9的有序顺序表,若采用折半搜索,在等概率情况下搜索成功的平均搜索长度为【】的值除以9。
A.20B.18C.25D.22
65.在有向图中每个顶点的度等于该顶点的【】。
A.入度B.出度C.入度与出度之和D.入度与出度之差
66.在基于排序码比较的排序算法中,【】算法的最坏情况下的时间复杂度不高于O(n10g2n)。
A.起泡排序B.希尔排序C.归并排序D.快速排序
67.当α的值较小时,散列存储通常比其他存储方式具有【】的查找速度。
A.较慢B.较快C.相同D.不清楚
68.设有一个含200个表项的散列表,用线性探查法解决冲突,按关键码查询时找到一个表项的平均探查次数不超过1.5,则散列表项应能够至少容纳【】个表项。
(设搜索成功的平均搜索长度为Snl={1+l/(1一α)}/2,其中α为装填因子)
A.400B.526C.624D.676
69.堆是一个键值序列{k1,k2,…..kn},对I=1,2,….|_n/2_|,满足【】
A.ki≤k2i≤k2i+1B.ki<
k2i+1<
k2i
C.ki≤k2i且ki≤k2i+1(2i+1≤n)D.ki≤k2i或ki≤k2i+1(2i+1≤n)
70.若将数据结构形式定义为二元组(K,R),其中K是数据元素的有限集合,则R是K上【】
A.操作的有限集合B.映象的有限集合C.类型的有限集合D.关系的有限集合
71.下列图示的顺序存储结构表示的二叉树是【】
72.由同一关键字集合构造的各棵二叉排序树【】
A.其形态不一定相同,但平均查找长度相同
B.其形态不一定相同,平均查找长度也不一定相同
C.其形态均相同,但平均查找长度不一定相同
D.其形态均相同,平均查找长度也都相同
73.ISAM文件和VSAM文件的区别之一是【】
A.前者是索引顺序文件,后者是索引非顺序文件
B.前者只能进行顺序存取,后者只能进行随机存取
C.前者建立静态索引结构,后者建立动态索引结构
D.前者的存储介质是磁盘,后者的存储介质不是磁盘
74.下列描述中正确的是【】
A.线性表的逻辑顺序与存储顺序总是一致的
B.每种数据结构都具备三个基本运算:
插入、删除和查找
C.数据结构实质上包括逻辑结构和存储结构两方面的内容
D.选择合适的数据结构是解决应用问题的关键步骤
75.下面程序段的时间复杂度是【】
I=s=0
While(s<
n)
{I++;
s+=I;
}
A.O
(1)B.O(n)C.O(log2n)D.O(n^2)
三、计算与算法应用题:
1.已知一个图的顶点集V和边集E分别为:
V={1,2,3,4,5,6,7};
E={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25};
按照普里姆算法从顶点1出发得到最小生成树,试写出在最小生成树中依次得到的各条边。
2.一棵二叉树的先序、中序和后序序列分别如下,其中有一部分未显示出来。
试求出空格处的内容,并画出该二叉树。
先序序列:
BFICEHG
中序序列:
DKFIAEJC
后序序列:
KFBHJGA
3.画出下列树对应的二叉树,并写出其先根遍历序列:
4.将关键字序列为{54,29,37,86,71,91,8,31,44,26}进行归并排序,写出各趟详细过程。
5.试列出如下图中全部可能的拓扑排序序列。
6.设某通信系统使用A,B,C,D,E,F,G,H八个字符,他们出现的概率w={5,29,7,8,14,23,3,11},试构造对应的哈夫曼树(请按左子树根结点的权小于右子树树根结点的权的次序构造)。
7.给定表(119,14,22,1,66,21,83,27,56,13,10),请按表中元素的顺序构造一棵平衡二叉树,并求其在等概率情况下查找成功的平均长度。
8.已知一个有向图的顶点集V和边集G分别为:
V={a,b,c,d,e,f,g,h}
E={<
a,b>
<
a,c>
b,f>
c,d>
c,e>
d,a>
d,f>
d,g>
e,g>
f,h>
};
假定该图采用邻接矩阵表示,则分别写出从顶点a出发进行深度优先搜索遍历和广度优先搜索遍历得到的顶点序列。
9.设散列表的长度为13,散列函数为H(h)=k%13,给定的关键码序列为19,14,23,01,68,20,84,27。
试画出用线性探查法解决冲突时所构成的散列表。
0123456789101112
10.对7个关键字进行快速排序,在最好的情况下仅需进行10次关键字的比较。
(1)假设关键字集合为{1,2,3,4,5,6,7},试举出能达到上述结果的初始关键字序列;
(2)对所举序列进行快速排序,写出排序过程。
11.如图所示二叉树,回答下列问题。
12.画出在一个初