数据结构自学考试试题+答案Word文档格式.docx
- 文档编号:21171745
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:11
- 大小:183.06KB
数据结构自学考试试题+答案Word文档格式.docx
《数据结构自学考试试题+答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构自学考试试题+答案Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
7.设n阶方阵M是对称矩阵,采用压缩存储方式将M中的元素保存在一维数组B中,则下列选项中,正确的是
A.保存M中的主对角线中的元素,B的元素个数是n
B.保存M中上三角部分的元素,B的元素个数是n(n-1)/2
C.保存M中上三角部分的元素,B的元素个数是n(n+1)2
D.保存M中的全部元素,B的元素个数是
8.已知完全二叉树T的第4层有5个叶结点,则T的结点个数最多是
A.12B.20C.21D.36
9.在一棵非空二叉树的后序遍历序列中,所有列在根结点前面的是
A.左子树中的部分结点B.右子树中的全部结点
C.左右子树中的部分结点D.左右子树中的全部结点
10.若对题10图所示的无向图进行深度优先搜索遍历,则下列选项中正确的遍历序列是
A.h,c,a,b,d,e,g,fB.e,a,f,g,b,h,c,d
C.d,b,c,a,h,e,f,gD.a,b,c,d,h,e,f,g
11.对题11图所示的有向图进行拓扑排序。
下列选项中能够得到的拓扑序列是
A.3,1,2,4,5,6B.3,1,2,4,6,5
C.3,1.4.2,5,6D.3,1,4,2,6,5
12.已知数据序列(8,9,10,4,5,6,20,1,2)是某种排序算法第-趟排序后得到的结果,则该算法可能是
A.选择排序B.起泡排序C.直接插入排序D.快速排序
13.下列选项中,每一趟都能选出一个元素放在其最终位置上,且不稳定的排序算法是
A.起泡排序B.希尔排序C.归并排序D.快速排序
14.对有序表(1,9,12,41,62,77,82,95,100)采用二分查找方法查找值82,查找过程中关键字的比较次数是
A.1B.2C.4D.7
15.将下列数据依次插入到初始为空的二叉排序树中,能得到高度最小的二叉排序树的序列是
A.2,4,7,5,8,10B.5,1,2,6,3,4C.6,4,1,8,10,5D.9.7.2.1.4.0
第二部分非选择题
二、填空题:
本大题共10小题,每小题2分,共20分。
16.线性表的存储方式中,能够随机存取表中任一元素的存储结构是。
17.用S表示入栈操作,X表示出栈操作,若元素入栈顺序为1234,为了得到1342的出栈顺序,相应的S.X操作串为。
18.若广义表L的深度是∞,则L一定是。
19.广义表((a,b),(c,d),e)的表尾是。
20.利用二叉树中的空指针域,使之指向结点在某种遍历次序下的前趋或后继结点,此时域中的内容称为。
21.若用n个带权字符构造哈夫曼树T,则T中结点的总数是。
22.设连通带权图G中有n个顶点,使用普里姆算法构造G的最小生成树T,T中含有的边数是。
23.要使n个记录的关键字序列k1,k2,...,kn成为小根堆,关键字之间必须满足的关系是。
24.索引顺序查找是一种将顺序查找和二分查找思想结合在一起的查找方法,又称为。
25.5阶B树T中,除根结点之外每个结点中所含关键字个数最少是。
三.解答题:
本大题共4小题,每小题5分,共20分。
26.设细数矩阵M如下所示。
矩阵的行列下标均从1开始,请画出M按行优先存储的三元组表。
27.已知二叉树T的前序遍历序列是A,B,C,D,E,L,M,O,N,中序遍序列是C,B,E,D,A,M,O,L,N,请画出T。
28.已知有向带权图G如题28图所示。
请回答下列问题。
(1)给出图G的邻接矩阵。
(2)求出G中从源点A到其余各顶点的最短路径。
要求根据迪杰斯特拉算法的求解过程依次给出各条路径,包括路径上经过的顶点及其长度。
29.设有关键字序列(65,23,31,26,7,91,53,15,72,52),散列函数为H(key)=key%11,将关键字依次放入表长为11的散列表H中,采用线性探测法处理冲突。
(1)画出构造的散列表,并给出查找每个关键字的探查次数。
(2)求散列表的平均查找长ASL。
四、算法阅读题:
30.顺序表类型定义如下:
#defineListSize100
typedefstruct{
intdata[ListSize];
intlength;
}SeqList;
阅读下列算法,并回答问题。
voidmysum(SeqList*SL1,SeqList*SL2)
{intminlength,k=0;
minlength=SL2->
length;
for(k=0;
k<
minlength;
k++)
if(SLI->
data[k]<
SL2->
data[k])SLI->
data[k]和=SL2->
data[k];
elseSL2->
data[k]+=SLI->
return;
}
voidf30(SeqList*SL1,SeqList*SL2)
{if(SL1->
length>
length)mysum(SLI,SL2);
elsemysum(SL2,SLI);
(1)若SL1->
data中的数据为(2,14,256,9,-38,30,128,257,64),SL2->
data中的数据为(32,14,63,15,29,51,16,8),则执行算法f30(&
SL1,&
SL2)后SL1->
data和SL2->
data中的数据各是什么?
(2)该算法的功能是什么?
31.二叉树的存储结构类型定义如下:
typedef
int
DataType;
struct
node
{
DataType
data;
//data是数据域
struct
node*lchild,
*
rchild;
//分别指向左右孩子
}BinTNode;
BinTNode
BinTree;
height(
BinTreeT)
{
int
lhigh
=
0,
rhigh=
0;
if(T
==
NULL)
retum
else{
lhigh
T>
lchild);
rhigh
rchild);
if(
Ihigh>
rhigh)
returm
lhigh+1;
else
rhigh+1;
}
Voidf31(BinTreeT)
intleftHigh=0,rightHigh=0;
BinTreetemp;
if(T==NULL)return;
else{
if(height(T->
lchild)<
height(t->
rchlid)){
temp=T->
lchild;
T->
lchild=T->
rchild=temp;
f31(T->
(1)设二叉树T如题31图所示,画出执行f31(T)后得到的二叉树T1。
(2)给出函数f31()的功能。
32.设顺序表的存储类型定义如下:
#
defineListSize
100
KeyType;
KeyType
key;
}NodeType;
typedefNodeType
SeqLis([ListSize];
函数f32()的功能是,基于二分查找在长度为n的有序表R中插入一个关键字x,并
保持R的有序性。
请在空白处填上适当语句使算法正确。
void
32(
SeqList
R,KeyTypex,intn)
low=0,
high=n-1,mid,inspace,ifind=0;
while(low<
=high&
&
!
find
){
mid=(low+high)/2;
if(x<
R[mid].key)
(1);
elseif(x>
R[mid].key)low=mid+l;
elsefind=l;
if(find)
inspace=
(2);
else
inspace=low;
for(i=n;
(3);
i--)
R[i+1]=R[i];
R[inspace].key=x;
34.设顺序表的存储类型定义如下:
}RecType;
f33(RecTypeR[],inti,intj)
RecType
x
R[D];
while(i<
j){
j
R[i].key>
x.key)j-;
if(i<
R(ij.key
R[j].key;
i++;
while(i
<
R[i].key<
x.key)i++;
R[j].key=
R([].key;
j-;
R[i].key
x.key;
return
i;
(1)设ReType
R[]={52,14,256,-9,-38,30,128,258,64},给出执行f33(R,0,8)后R的结果。
(2)给出该算法的功能。
五、算法设计题:
本题10分。
34.已知二叉树的存储结构类型定义如下:
typedefstructnode
node*lchild,*rchild;
}BinNode;
BinNode
*BinTree;
编写递归算法,对于给定的一棵二叉树T,计算并返回所有结点data域的值之和。
函数原型为:
intf4(BinTreeT);
。
例如,对于题34图所示的二叉树T,f34(T)应返回24.
数据结构试题答案及评分参考
本大题共5小题,每小题2分,共30分。
1.B2.A3.D4.B5.B6.C7.C8.C9.D10.D11.D12.C13.D14.B15.C
二填空题:
16.顺序存储结构17.SXSSXSXX
18.递表19.((c.d).c)
20.线索21.2n-1
22.n-123.k,k,1k,≤ky1(1≤i≤
)
24.分块查找25.2
三、解答题:
26.(5分)
i
j
v
1
2
-8
4
6
7
3
-5
5
【评分说明】每个非零元素的行、列及值正确,且次序也正确,给1分。
部分正确酌情给分。
27.(5分)
28.
(1)G的邻接矩阵(1分)
(2)根据地杰斯特拉算法求得的各条最短路径依次是(4分)
次序
最短路径
长度
AE
AC
ACB
ACD
【评分说明】每条最短路径上所含的顶点、路径长度正确,且次序正确,给1分。
部分正酌情给分。
29.
(1)散列表及各关键字的探查次数(4分)
8
9
10
53
23
91
26
15
72
52
31
65
下标(地址)
散列表
探查次数
【评分说明】散列表的内容部分,共给3分,探查次数部分,共给1分。
(2)ASL=(3+1+1+1+2+1+1+1+1+1)/10=1.3(1分)
30.(I)SL1->
data中的数据是(52,14,256,6,-9,81,128,257,64)(2分)
SL2->
data中的数据是(84,28,193,15,29,51,144,265)(2分)
(2)该算法比较两个线性表中相同下标位置的两个元素(以较短者为限),将两者之和放到原来较小者的位置,若原来两者相等,则将两者之和放到SL2中。
(1分)
31.
(1)(4分)
(2)函数f13(
)的功能是:
将二叉树T的每个结点的高度较高的子树放到左子树位置,高度较矮的子树放到右子树位置。
(1分)
32.
(1)high=mid-1(2分)
(2)mid(1分)
(3)i>
=inspace(2分)
33.
(1)R中的值是{30,14,-38,-9,52,256,128,258,64}。
(4分)
(2)该算法选择第一个元素作为基准,实现对数组的一次划分。
(或实现快速排序的一次划分。
)(1分)
34.参考程序如下。
f34
(BinTree
T)
leftSum=0,rightSum=0;
(1分)
if(T==NULL)returm
(2分)
else
if(T->
Ichild!
=NULL)leftSum=f34(T>
(3分)
rchild!
=NULL)rightSum=f34(T->
leftSum+rightSum+T->
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 自学考试 试题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)