数据结构考试及答案Word文档格式.docx
《数据结构考试及答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构考试及答案Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
4
V
1
V3
8.8.设某无向图G的邻接表为
V4
,则从顶点V1开始的深度优先遍
历序列为:
广度优先遍历序列为
。
三、应用题(36分)
1.1.设一组初始记录关键字序列为
(45,
80,
48,
40,
22,78),则分别给出第4趟简单
选择排序和第4趟直接插入排序后的结果。
2.2.设指针变量p指向双向链表中结点A,指针变量q指向被插入结点B,要求给出在结点A的后面插入结点B的操作序列(设双向链表中结点的两个指针域分别为llink和rlink)。
3.3.设一组有序的记录关键字序列为(13,18,24,35,47,50,62,83,90),查找方
法用二分查找,要求计算出查找关键字62时的比较次数并计
算出查找成功时的平均查找长度。
4.4.设一棵树T中边的集合为{(A,B),(A,C),(A,D),(B,
E),(C,F),(C,G)},要求用孩子兄弟表示法(二叉链表)表示出该树的存储结构并将该树转化成对应的二叉树。
5.5.设有无向图G(如右图所示),要求给出用普里姆算法构造最小生成树所走过的边的集合。
6.6.设有一组初始记录关键字为(45,80,48,40,22,78),
要求构造一棵二叉排序树并给出构造过程。
数据结构试卷
(二)参考答案
一、选择题
1.D2.B3.C4.A5.A6.C7.B8.C
二、填空题
1.1.构造一个好的HASH函数,确定解决冲突的方法
2.2.stack.top++,stack.s[stack.top]=x
3.3.有序
4.4.O(n2),O(nlog2n)
5.5.N0-1,2N0+N1
6.6.d/2
7.7.(31,38,54,56,75,80,55,63)
8.
8.(1,3,4,2),(1,3,2,4)
(22,40,45,48,80,78),(40,45,48,80,22,78)q->
llink=p;
q->
rlink=p->
rlink;
p->
rlink->
llink=q;
rlink=q;
2,ASL=91*1+2*2+3*4+4*2)=25/9树的链式存储结构略,二叉树略
数据结构试卷(三)
一、选择题(30分)
1.设某数据结构的二元组形式表示为A=(D,R),D={01,02,03,04,05,06,07,08,
09},R={r},r={<
01,02>
,<
01,03>
01,04>
02,05>
02,06>
03,07>
,<
03,08>
03,09>
},则数据结构A是()。
(A)线性结构(B)树型结构(C)物理结构(D)图型结构
2.下面程序的时间复杂为()
for(i=1,s=0;
i<
=n;
i++){t=1;
for(j=1;
j<
=i;
j++)t=t*j;
s=s+t;
(A)O(n)(B)O(n2)(C)O(n3)(D)O(n4)
3•设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为()。
(A)q=p->
next;
data=q->
data;
next=q->
free(q);
(B)q=p->
data=p->
free(q);
(C)q=p->
(D)q=p->
4•设有n个待排序的记录关键字,则在堆排序中需要()个辅助记录单元。
(A)1(B)n(C)nlog2n(D)n2
5.设一组初始关键字记录关键字为(20,15,14,18,21,36,40,10),则以20为基准记
录的一趟快速排序结束后的结果为()。
8.8.设查找表中有100个元素,如果用二分法查找方法查找数据元素X,则最多需要比较次就可以断定数据元素X是否在查找表中。
9.9.不论是顺序存储结构的栈还是链式存储结构的栈,其入栈和出栈操作的时间复杂度均为。
10.10.设有n个结点的完全二叉树,如果按照从自上到下、从左到右从1开始顺序编号,则第i个结点的双亲结点编号为,右孩子结点的编号为。
11.11.设一组初始记录关键字为(72,73,71,23,94,16,5),则以记录关键字72为
基准的一趟快速排序结果为。
12.12.设有向图G中有向边的集合E={<1,2>,<2,3>,<1,4>,<4,2>,<4,3>},则该图的一种拓扑序列为。
13.13.下列算法实现在顺序散列表中查找值为x的关键字,请在下划线处填上正确的语句。
structrecord{intkey;
intothers;
};
inthashsqsearch(structrecordhashtable[],intk)
inti,j;
j=i=k%p;
while(hashtable[j].key!
=k&
&
hashtable[j].flag!
=0){j=()%m;
if(i==j)return(-1);
if()return(j);
elsereturn(-1);
14.14.下列算法实现在二叉排序树上查找关键值k,请在下划线处填上正确的语句。
typedefstructnode{intkey;
structnode*lchild;
structnode*rchild;
}bitree;
bitree*bstsearch(bitree*t,intk)
if(t==0)return(0);
elsewhile(t!
=0)
if(t->key==k);
elseif(t->key>k)t=t->lchild;
else;
数据结构试卷(三)参考答案
1.B2.B
6.B7.D
第3小题分析:
3.A4.A5.A
8.C9.B10.D
首先用指针变量q指向结点A的后继结点B,然后将结点B的值复制
到结点A中,最后删除结点B。
第9小题分析:
9快速排序、归并排序和插入排序必须等到整个排序结束后才能够求出最小的10个数,而堆排序只需要在初始堆的基础上再进行10次筛选即可,每次筛选的时间
复杂度为O(log2n)。
1.
顺序存储结构、链式存储结构
2.
9,501
3.
5
4.
出度,入度
5.
6.
e=d
7.
中序
7
9.
O
(1)
10.
i/2,2i+1
11.
(5,16,71,23,72,94,73)
12.
(1,4,3,2)
13.
j+1,hashtable[j].key==k
14.
return(t),t=t->
rchild
第8小题分析:
二分查找的过程可以用一棵二叉树来描述,该二叉树称为二叉判定树。
在有序表上进行二分查找时的查找长度不超过二叉判定树的高度1+log2n。
数据结构试卷(四)
、选择题(30分)1.设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为()。
(A)O(n)(B)O(nlog2n)(C)O
(1)(D)O(n2)
2•设一棵二叉树的深度为k,则该二叉树中最多有()个结点。
(A)2k-1(B)2k(C)2k-1(D)2k-1
3•设某无向图中有n个顶点e条边,则该无向图中所有顶点的入度之和为()。
(A)n(B)e(C)2n(D)2e
4.在二叉排序树中插入一个结点的时间复杂度为()。
(A)O
(1)(B)O(n)(C)O(log2n)(D)O(n2)
5.设某有向图的邻接表中有n个表头结点和m个表结点,则该图中有()条有向边。
(A)n(B)n-1(C)m(D)m-1
6.设一组初始记录关键字序列为(345,253,674,924,627),则用基数排序需要进行()
趟的分配和回收才能使得初始关键字序列变成有序序列。
(A)3(B)4(C)5(D)8
7.设用链表作为栈的存储结构则退栈操作()。
(A)必须判别栈是否为满(B)必须判别栈是否为空
(C)判别栈元素的类型(D)对栈不作任何判别
8.下列四种排序中()的空间复杂度最大。
(A)快速排序(B)冒泡排序(C)希尔排序(D)堆
9.设某二叉树中度数为0的结点数为No,度数为1的结点数为Ni,度数为2的结点数为
N2,则下列等式成立的是()。
(A)N0=N1+1(B)N0=Nl+N2(C)N0=N2+1(D)N0=2N1+l
10•设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不
超过()。
二、填空题(42分)
1.1.设有n个无序的记录关键字,则直接插入排序的时间复杂度为,快速排
序的平均时间复杂度为。
2.2.设指针变量p指向双向循环链表中的结点X,则删除结点X需要执行的语句序列
为(设结点中的两个
指针域分别为llink和rlink)。
3.3.根据初始关键字序列(19,22,01,38,10)建立的二叉排序树的高度为。
4.4.深度为k的完全二叉树中最少有个结点。
5.5.设初始记录关键字序列为(K1,K2,…,Kn),则用筛选法思想建堆必须从第个元素开始进行筛选。
6.6.设哈夫曼树中共有99个结点,则该树中有个叶子结点;
若采用二叉链
表作为存储结构,则该树中有个空指针域。
7.7.设有一个顺序循环队列中有M个存储单元,则该循环队列中最多能够存储
个队列元素;
当前实际存储个队列元素(设头指针F指向当前队头元素的前一个位置,尾指针指向当前队尾元素的位置)。
&
设顺序线性表中有n个数据元素,则第i个位置上插入一个数据元素需要移动表
中个数据元素;
删除第i个位置上的数据元素需要移动表中个元素。
9.9.设一组初始记录关键字序列为(20,18,22,16,30,19),则以20为中轴的一趟快速排序结果为。
10.10.设一组初始记录关键字序列为(20,18,22,16,30,19),则根据这些初始关键字
序列建成的初始堆为。
11.11.设某无向图G中有n个顶点,用邻接矩阵A作为该图的存储结构,则顶点i和顶
点j互为邻接点的条件是。
12.12.设无向图对应的邻接矩阵为A,则A中第i上非0元素的个数第i列上
非0元素的个数(填等于,大于或小于)。
13.13.设前序遍历某二叉树的序列为ABCD,中序遍历该二叉树的序列为BADC,则后
序遍历该二叉树的序列为。
14.14.设散列函数H(k)=kmodp,解决冲突的方法为链地址法。
要求在下列算法划线处填
上正确的语句完成在散列表hashtalbe中查找关键字值等于k的结点,成功时返回指向关键字的指针,不成功时返回标志0。
typedefstructnode{intkey;
structnode*next;
}lklist;
voidcreatelkhash(lklist*hashtable[])
inti,k;
lklist*s;
for(i=0;
i<
m;
i++);
n;
i++)
s=(lklist*)malloc(sizeof(lklist));
s->
key=a[i];
k=a[i]%p;
next=hashtable[k];
123456
11
01
数据结构试卷(四)参考答案
D
2.
O(n2),O(nlog2n)p>
llink->
llink=p->
rlink3
2k-1
n/2
50,51m-1,(R-F+M)%Mn+1-i,n-i
(19,18,16,20,30,22)
(16,18,19,20,32,22)
A[i][j]=1等于BDCAhashtable[i]=0,hashtable[k]=s
数据结构试卷(五)
一、选择题(30分)1.数据的最小单位是()。
(A)数据项(B)数据类型(C)数据元素(D)数据变量
2.设一组初始记录关键字序列为(50,40,95,20,15,70,60,45),则以增量d=4的一趟希尔排序结束后前4条记录关键字为()。
(25,50,15,35,80,85,20,40,36,70),其中含有5
个长度为2的有序子表,则用归并排序的方法对该记录关键字序列进行一趟归并后的结
果为()。
(A)15,
25,
35,
50,
20,
80,
85,
36,
70
(B)15,
70,
36
(C)15,
(D)15,
85
4.函数substr(
“TDAASTRUCTUR”E
5,9)的返回值为()
(A)“STRUCTUR”E(B)“DTA”
(C)“ASTRUCTUR”(D)“DTASTRUCTUR”E
5.设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为()。
(A)O(log2n)(B)O
(1)(C)O(n2)(D)O(n)
6.设一棵m叉树中度数为0的结点数为No,度数为1的结点数为Ni,,度数为m的结点数为Nm,则No=()。
(A)N+N2+……+Nm(B)
I+N2+2N3+3N4+……+(m-1)Nm
(C)N2+2N3+3N4+……+(m-1)Nm(D)2Ni+3N2+……+(m+1)Nm
7.设有序表中有1000个元素,则用二分查找查找元素X最多需要比较()次。
(A)25(B)10(C)7(D)1
设连通图G中的边集E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},则从顶点a出发可以得到一种深度优先遍历的顶点序列为()。
(A)abedfc(B)acfebd(C)aebdfc(D)aedfcb
9•设输入序列是1、2、3、……、n,经过栈的作用后输出序列的第一个元素是n,则输出
序列中第i个输出元素是()。
(A)n-i(B)n-1-i(C)n+1-i(D)不能确定
10设一组初始记录关键字序列为(45,80,55,40,42,85),则以第一个记录关键字45为
基准而得到一趟快速排序的结果是()。
(A)40,42,45,55,80,83(B)42,40,45,80,85,88
(C)42,40,45,55,80,85(D)42,40,45,85,55,80
二、填空题(共30分)
1.1.设有一个顺序共享栈S[0:
n-1],其中第一个栈项指针top1的初值为-1,第二个
栈顶指针top2的初值为n,则判断共享栈满的条件是。
2.2.在图的邻接表中用顺序存储结构存储表头结点的优点是
3.3.设有一个n阶的下三角矩阵A,如果按照行的顺序将下三角矩阵中的元素(包
括对角线上元素)存放在n(n+1)个连续的存储单元中,则A[i][j]与A[0][0]之间有
个数据元素。
4.4.栈的插入和删除只能在栈的栈顶进行,后进栈的元素必定先出栈,所以又把栈
称为表;
队列的插入和删除运算分别在队列的两端进行,先进队列的元素必
定先出队列,所以又把队列称为表。
5.5.设一棵完全二叉树的顺序存储结构中存储数据元素为ABCDEF,则该二叉树的
前序遍历序列为,中序遍历序列为,后序遍历序列为
6.6.设一棵完全二叉树有128个结点,则该完全二叉树的深度为,有
个叶子结点。
7.7.设有向图G的存储结构用邻接矩阵A来表示,则A中第i行中所有非零元素个
数之和等于顶点i的,第i列中所有非零元素个数之和等于顶点i的
8.8.设一组初始记录关键字序列(ki,k2,……,kn)是堆,则对i=1,2,…,n/2而言
满足的条件为。
9.9.下面程序段的功能是实现冒泡排序算法,请在下划线处填上正确的语句。
voidbubble。
ntr[n])
for(i=1;
=n_1;
i++)
for(exchange=O,j=O;
j++)
if(r[j]>
r[j+1]){temp=r[j+1];
r[j]=temp;
exchange=1;
if(exchange==0)return;
10.10.下面程序段的功能是实现二分查找算法,请在下划线处填上正确的语句。
structrecord{intkey;
intbisearch(structrecordr[],intk)
intlow=0,mid,high=n-1;
while(low<
=high)
if(r[mid].key==k)return(mid+1);
elseif()high=mid-1;
elselow=mid+1;
}return(0);
三、应用题(24分)
1.1.设某棵二叉树的中序遍历序列为DBEAC,前序遍历序列为
ABDEC,要求给出该二叉树的的后序遍历序列。
2.2.设无向图G(如右图所示),给出该图的最小生成树上边的
集合并计算最小生成树各边上的权值之和。
3.3.设一组初始记录关键字序列为(15,17,18,22,35,51,
60),要求计算出成功查找时的平均查找长度。
4.4.设散列表的长度为8,散列函数H(k)=kmod7,初始记录关
键字序列为(25,31,8,27,13,68),要求分别计算出用线性探测法和链地址法作为解决冲突方法的平均查找长度。
参考答案
1.A2.B
3.A
4.A
5.D
6.B7.B
8.B
9.C
10.C
1.1.top1+1=top2
2.2.可以随机访问到任一个顶点的简单链表
3.3.i(i+1)/2+j-1
4.4.FILO,FIFO
5.5.ABDECF,DBEAFC,DEBFCA
6.6.8,64
7.7.出度,入度
8.8.ki<
=k2i&
ki<
=k2i+1
9.9.n-i,r[j+1]=r[j]
10.10.mid=(low+high)/2,r[mid].key>
k
三、应用题
123
DEBCA
E={(1,5),(5,2),(5,3),(3,4)},W=10
ASL=(1*1+2*2+3*4)/7=17/7
ASL1=7/6,ASL2=4/3
数据结构试卷(六)
1.设一组权值集合W={2,3,4,5,6},则由该权值集合构造的哈夫曼树中带权路径长度之和为()。
(A)20(B)30(C)40(D)452.执行一趟快速排序能够得到的序列是()。
3.设一条单链表的头指针变量为head且该链表没有头结点,则其判空条件是()。
(A)head==0(B)head->
next==0
(C)head->
next