数据结构模拟试题.docx
- 文档编号:30738415
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:48
- 大小:109.01KB
数据结构模拟试题.docx
《数据结构模拟试题.docx》由会员分享,可在线阅读,更多相关《数据结构模拟试题.docx(48页珍藏版)》请在冰豆网上搜索。
数据结构模拟试题
模拟试题1
一、选择题(20分)
1.组成数据的基本单位是(C)。
(A)数据项(B)数据类型(C)数据元素(D)数据变量
2.线性表的链接实现有利于(A)运算。
(A)插入(B)读表元(C)查找(D)定位
3.串的逻辑结构与(D)的逻辑结构不同。
(A)线性表(B)栈(C)队列(D)树
4.二叉树第i(i≥1)层最多有(C)个结点
(A)2i,(B)2i(C)2i-1(D)2i一1
5.设单链表中指针p指向结点A,若要删除A之后的结点(若存在),则修改指针的
操作为(A)。
(A)P一>next=p一>next一>next(B)p=P一>next
(C)p=P一>next一>next(D)p一>next=p
6.设一数列的输入顺序为1,2,3,4,5,6,通过栈操作不可能排成的输出序列为(D)
(A)3,2,5,6,4,1(B)l,5,4,6,2,3
(C)2,4,3,5,1,6(D)4,5,3,6,2,1
7.设字符中S1=‘ABCDEFG’,S2=‘PQRST’,则运算S=Concat(Sub(S1,2,Length(S2)),Sub(S1,Length(S2),2))后结果为(D)。
(A)‘BCQR’(B)‘BCDEF’
(C)‘BCDEFG’(D)‘BCDEFEF’
8.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第1个
元素,其存储地址为1,每个元素占用1个地址空间,则a85的地址为(B)。
(A)13(B)33(C)18(D)40
9.如果结点A有3个兄弟,且B为A的双亲,则B的度为(D)。
(A)3(B)4(C)5(D)1
10.线索化二叉树中某结点D,没有左孩子的主要条件是(B)。
(A)D一>Lchild=NULL(B)D一>1tag=1
(C)D一>Rchild=NULL(D)D一>1tag=0
二、填空题(每空2分,共22分)
1.对于一个以顺序实现的循环队列Q[0…m—1],队首、队尾指针分别为f和r,其判空的条件是_r=f_,判满的条件是(r十1)%m=f。
2.循环链表的主要优点是______从任一结点出发可以遍历链表中的所有结点。
3.给定一个整数集合{3,5,6,9,12},画出其对应的一棵Huffman树__________
4.在双向循环链表中,在指针p所指的结点之后插入指针f所指的结点,其操作为________________
5.下面为朴素的模式匹配算法,请在算法的下划线处填上正确的子句
intindex(s,t)
string*s,*t;
{i=j=0;
while((i<s一>len)&&(j<t一>len))
if(s一>ch[i]==t一>ch[j]){
i=i+1;
j=j+1;
}else{
i=_____i-j-1____________;
j=_____0____________;
}
if(j==t->len)
return(i-t->len);
else
return(-1);
}
6.一个n×n的对称矩阵,如果以行或列为主序存人内存,则其容量为_N(N+1)/2________。
7.设F是森林,B是由F转换得到的二叉树,F中有n个非终端结点,B中右指针域为空的结点有___N+1___________。
8.先序序列和中序序列相同的二叉树为____单右子树二叉树或孤立结点。
9.已知一棵二叉树的中序遍历结果为DBHEAFICG,后序遍历结果为DHEBIFGCA,画出该二又树___________________。
三、应用题(16分)
1.设二叉树的顺序存储结构如下:
(4分)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
E
A
F
^
D
^
H
^
^
C
^
^
^
G
I
^
^
^
^
B
(1)根据其存储结构,画出二叉树。
(2)写出按先序、中序、后序遍历该二叉树所得的结点序列。
(3)画出二叉树的后序线索化树。
2.一棵完全二叉树共有21个结点,现顺序存放在一个矢量中,矢量的下标正好为结点的序号,试问序号为12的双亲结点存在吗?
为什么?
(4分)
3.线性表有顺序表和链表两种存储结构,简述各自的优缺点。
(4分)
4.何谓队列的“假溢”现象?
如何解决?
(4分)
四、算法设计(38分)
1.试写出求二又树结点数目的算法。
(13分)
2.设a=(a1,a2,…am)和b=(b1,b2,…,bn)是两个循环链表写出将这两个表合并为循环链表c的算法。
(15分)
(a1,b1,a2,b2,…am,bm,bm+1,…,bn)m≤n
c=
(a1,b1,a2,b2,…an,bn,an+1,…,am)m>n
3.已知一个单链表中每个结点存放一个整数,并且其结点数不少于2。
试偏导算法以判断该链表中从第二项起的每个元素值是否等于其序号的平方减去其前驱结点的值,若满足,返回True,否则返回False。
(10分)
模拟试题2
一、选择题(20分)
1.数据结构是研究数据的(C)以及它们之间的相互关系。
(A)理想结构,物理结构(B)理想结构,抽象结构
(c)物理结构,逻辑结构(D)抽象结构,逻辑结构
2.线性表采用链式存储时,其地址(D)。
(A)必须是连续的(B)部分地址必须是连续的
(c)一定是不连续的(D)连续与否均可以
3.设循环队列Q[l…n—1]的首尾指针为f和r,当插入元素时尾指针r加1,首指针F总是指在队列中第一个元素的前一个位置,则队列中元素计数为(D)。
(A)r一f(B)n一(r一f)
(C)(r—f十n)%n(D)(f一r十n)%n
4.完成堆排序的全过程需要(A)个记录大小的辅助空间。
(A)1(B)n
(C)nlog2n(D)Lnlog2nJ
5.若结定的关键码集合为{20,15,14,18,2l,36,40,10},一趟快速排序结束时,键值的排列为(A)。
(A)10,15,14,18,20,36,40,21
(B)10,15,14,18,20,40,36,21
(C)10,15,14,20,18,40,36,21
(D)15,10,14,18,20,36,40,21
6.有—棵二叉树如下图.该树是(B)。
(A)二叉平衡树(B)二叉排序树
(c)堆的形状(D)以上都不是
7.对于含有n个顶点e条边的无向连通图,利用Prim算法生成最小代价生成树其时间复杂度为(),利用Kruskal时间复杂度为(B)。
(A)O(1og2n)(B)O(n2)(C)O(ne)(D)O(elog2e)
8.具有n个顶点的完全有向图的边数为(A)。
(A)n(n一1)/2(D)n(n—1)(C)n2(D)n2-1
9.设有100个元素,用折半查找时,最大比较次数为(B),最小比较次数为(D)。
(A)25(B)7(C)10(D)1
10.在内部排序中,排序时不稳定的有(C)
(A)插入排序(B)冒泡排序(C)快速排序(D)归并排序
二、填空题(22分)
1.具有64个结点的完全二叉树的深度为______7___________。
2.有向图G用邻接矩阵A{l…n,1…n}存储,其第i列的所有元素等于顶点i的____人度即ID__。
3.设有一空栈,栈顶指针为1000H(十六进制),现有输入序列为1,2,3,4,5,经过Push,Push,Pop,Push,Pop,Push,Push操作后,输出序列为____2,3_____。
4.线索化二叉树中某结点D,没有左孩子的主要条件是_左标志位为l。
5.模式中“ababbabbab”的前缀函数为_Next[j]=(0112312312)___。
6.设图G的顶点数为n,边数为e,第i个顶点的度数为D(vi)则e=________________(即边数与各顶点的度数之间的关系)。
7.按_____中序_______遍历二叉树,可以得到按值递增的关键码序列,在下图中所示的二叉树中,检索关键码85的过程中,需与85进行比较的关健码序列为_5095557085_。
8.下列算法实现二叉树排序树上的查找,请在空格处填上适当的语句,完成上述功能。
bitreptr*bstsearch(bitreptr*t,keytypek)
{
if(t==NULL)
returnNULL;
else
while(t!
=NULL){
if(t->key==k)__Return(t)__;
if(t->key>k)__Return(bstsearch(t一>1child,k))__;
else_Return(bstsearch(t一>rchild,k))___;
}
}
三、应用题(28分)
1.设哈希表的地址空间为0~16,开始时哈希表为空,用线性探测开放地址法处理冲突,对于数据元素Jan,Feb,Mar,Jun,Aug,Sep,Oct,Nov,Dec,试构造其对应的哈希表,H(key)=Li/2J,其中i为关键码中第一个字母在字母表中的序号。
2.设有5000个无序的元素,希望用最快的速度挑选出其中前10个最大的元素,在快速排序、堆排序和基数排序方法中,采用哪种方法最好?
为什么?
3.对于下图,试给出
(1)每个顶点的入度和出度
(2)邻接矩阵,
(3)逆邻接表;
(4)强连通分量。
4.简述堆排序的基本思想,对键值集合{72,73,71,23,94,16,05,68}对应的二叉树进行进堆,并写出具体步骤。
四、算法设计(30分)
1.某百货公司仓库中有一批电视机,按其价格从低到高的次序构成一个单链表存于计算机中,链表的每个结点指出同样价格的若干台,现在又新到m台价格为n元的电视机入库,试编写仓库电视机链表增加电视机的算法。
2.设计一个算法,求出指定结点在给定的二叉排序树中所在的层次。
3.设汁一个算法,建立无向图(n个顶点,e条边)的邻接表。
模拟试题3
一、选择题(20分)
1.组成数据的基本单位是(C)。
(A)数据项(B)数据类型(c)数据元京(D)数据变量
2.线性表的链接实现有利于(A)运算。
(A)插人(B)读表元(C)查找(D)定位
3.中序遍历一棵二叉排序树所得到的结点访
(A)递增或递减(B)递减(C)递增(D)无序
4.SubStr(‘DATASTRUCTURE’,5,9)=()。
(A)‘STRUCTURE’(B)‘DATA’
(C)‘ASTRUCTURE’(D)‘DATASTRUCTURE’
5.下列哪一种形态不为树(C)。
(a)(b)(c)(d)
6.下列哪种排序需要的附加存储开
(A)快速排序(B?
堆排序(C)归并排序(D)插人排序
7.对任何一棵树T,设
分别是度为0,1,…,m的结点,则
()。
(A)
(B)
(C)
(D)
8.对下图v4的度为()。
(A)1(B)2(C)3(D)4
9.在内部排序中,排序时不稳定的有(A)。
(A)快速排序(B)冒泡排序
(c)归并排序(D)直接插入排序
10.设有1000个元素,用折半查找时,最大比较次数为(B),最小比较次数为(D)
(A)25(B)10(C)7(D)1
二、填空题(26分)
1.对于一个以顺序实现的共享栈[1…n],栈顶指针分别为top1和top2,top1由小到大,top2由大到小,其判断下溢的条件是_Top1=0或top2=n十1___;判断上溢的条件是___top1十1=top2___。
2.双向循环链表的主要优点是_既可以方便地找到一个结点的后继,又可以方便地找到一个结点的前驱__。
3.上三角矩阵压缩存储的下标对应关系k=_I(2N-I+1)/2+J-I+1(I<=3)_。
4.设有一个空栈,现输入序列为l,2,3,4,5,经过Push,Push,Pop,Push,Pop,Push,Pop,Push后,输出序列为__234__。
5.后序序列和中序序列相同的二叉树为__单左子树二叉树或孤立结点。
6.具有128个结点的完全二叉树的深度为___储,其第i行的所有元素值之和等于顶点vi的__________________。
8.设键值序列为{k1,k2,…,kn},建堆和排序全过程共需进行_[N/2]+N-1次堆调整。
9.在下面冒泡排序算法中填入适当内容,使该算法在发现有序时能及时停止。
bubble(RectypeR[n])
{
inti,j,exchang;
Rectypetemp;
i=1;
do{
exchang=False;
for(j=n;j>=_I+1___;j--)
if(R[j] temp=R[j-1]; R[j-1]=R[j]; R[j]=temp; _exchang=True__; } ___i=i+1___; }while(__exchang=False___); } 三、应用题(24分) 1.已知一棵二叉树的中序遍历结果为DBHEAFICG,先序遍历结果为ABDEFHCFIG,试画出该二叉树。 2.线性表有顺序表和链表两种存储结构,简述各自关于运算实现的优缺点。 3.给定有序表D={15,17,18,22,35,60,88,93},用折半查找法在D中查找18,试用图示法表示查找过程。 4.快速排序为什么是不稳定的排序? 试举例说明。 四、算法设计(30分) 1.有一个带头结点的单链表,编写在值为x的结点之后插入m个结点的算法。 (10分) 2.编写一个算法计算一个广义表的原子结点个数。 (12分) 3.设计一个算法,用于查找中序线索二叉树中结点*p的中序前驱结点。 (8分) 模拟试题4 一、选择题(20分) 1.n个顶点的无向图的邻接表中结点总数最多有(D)个。 (A)2n〔B)n(C)n/2(D)n(n-1) 2.设连通图G的顶点数为n,则G的生成树的边数为(B) (A)n(B)n一1(C)2n(D)2n-1 3.下列哪种排序需要的附加存储开销最小(B)。 (A)快速排序(B)堆排序(c)归并排序(D)计数排序 4.若按(B)列出二叉排序树中所存储的元素,则恰好是集合中所有元素从小到大的排序。 (A)先序(B)中序(C)后序(D)按层次 5.在下列4棵树中,哪一棵是完全二叉树(C)。 6.下面程序段的时间复杂度为(C)。 s=s0; for(i=l;i<=n;j++) for(j=n;j>=n-1;j--) s=s+1; (A)O(n)(B)O(nlog2n)(C)O(n2)(D)O(n3/2) 7.采用链结构存储线性表时,其地址(C)。 (A)必须是连续的(B)连续不连续都可以 (c)部分地址必须是连续的(D)必须是不连续的 8.具有2000个结点的二叉树,其高度至少为(B)。 〔A)9(B)10(C)11(D)12 9.按字母顺序,下图中的二叉排序树是(C)。 10.设单链表中指针p指着结点A,若要删除A之后的结点(若存在),则需要修改指针的操作为(A)。 (A)p一>next=p一>next一>next;(B)p=p一>next (C)p=p一>next一>next(D)P一>next=p 二、判断题(10分) 1.具有线性序关系的集合中,若a,b是集合中的任意两个元素,则必有a (0) 2.二叉排序树的左、右子树都是二叉排序树。 (1) 3.在堆中执行INSERT与DELETEMIN运算都只需O(log2n)时间。 (1) 4.一棵满二叉树同时又是一棵平衡树。 (0) 5.即使某排序算法是不稳定的,但该方法仍有实际应用价值。 (1) 6.连通分量是无向图中的极小连通子图。 (0) 7.先序遍历一棵二叉排序树所得的结点访问序列不可能是链值递增序列。 (0 8.不论adt栈是用数组实现,还是用指针实现,Pop(s)与Push(x’s)的时间复杂度均 )(M)。 (0) 9.表中的每一个元京都有前驱和后继元素。 (0) 10.作为解决一类特定问题的算法,不能没有输入运算项。 (0) 三、填空题(每空2分.共22分) 1.在双向循环表中,在p所指的结点之后插入指针f所指的结点,其操作为__f->prior=p;f一>next=p一>next;__p->next->prior;p一>next=f。 2.若字符串t=‘ababcab’,前缀函数next[5]=________0________ 3.一个具有M个顶点的有向完全图的弧数为____n(n-1)_____________。 4.有序字典是以____有序集__________为基础的抽象数据类型。 5.设链值序列为{K1,K2,…,Kn},用筛选法建堆必须从第_n/2___个元素开始筛选。 6.哈希表的两种形式是: _开_________和____闭______。 7.设一棵二叉树共用50个叶子结点(终端结点),则它共有__49____个度为2的结点。 8.高度为h(≥0)的二叉树,至少有__h________个结点,最多有___2*h-1_____个结点。 四、应用题(20分) 1.依次输入集合{20,13,22,5,16,3,48,24}中的键值,得到一棵二叉排序树,试画出该二叉排序树并求出在等概率下成功查找的平均查找长度。 (5分) 2.设下图所示的二叉树是由森林转换而成的,试将它还原为森林。 (5分) 3.树与二叉树之间有何区别? (5分) 4.巳知图如下所示。 (5分) (1)要求用Kruskal算法求出最小生成树 (2)指出生成树的第一条边。 五、算法设计(28分) 1.编写一个程序,输出二叉排序树BT中最小的键值。 (8分) 2.我们用链表来存储多项式 其中 试编写求 微商的算法。 (注, )(10分) 3.设计一个算法,求出指定结点在给定的二叉树中所在的层次。 (10分) 模拟试题5 一、选择题(30分) 1.下列程序的时间复杂度为(A) for(i=0;i for(j=0;j c[i][j]=0; for(i=0;i for(j=0;j for(k=0;k c[i][j]=c[i][j]+a[i][k]*b[k][j]; (A)O(mnt)(B)O(m+n+t)(C)O(m+n)(D)O(mt+n) 2.从一个长度为n的顺序表中删除第i个真值表归约(1≤i≤n),需向前移动(A)个元素。 (A)n-i(B)n-i+1(C)n-i-1(D)i 3.在一个具有n个结点的单链表中查找其值等于x的结点.在查找成功的情况下需平均比较(C)个元素结点。 (A)n/2(B)n(C)(n+1)/2(D)(n-1)/2 4.对一个具有n个元素的线性表,建立其有序单链表的时间复杂度为(C)。 (A)O(n)(B)O (1)(C)O(n2)(D)O(log2n) 5.在双向循环链表中,在p所指的结点之后插入s指针所指的结点,其操作是(D)。 (A)p->next=s;s->prior=p;p->next->prior=s;s->next=p->next; (B)s->prior=p;s->next=p->next;p->next=s;p->next->prior=s; (C)p->next=s;p->next->prior=s;s->prior=p;s->next=p->next; (D)s->prior=p;s->next=p->next;p->next->prior=s;p->next=s; 6.串的长度是(D)。 (A)串中不同字符的个数(B)串中不同字母的个数 (C)串中所含字符的个数n(n>0)(D)串中所含字符的个数n(n≥0) 7.若有一个栈的输入序列是l,2,…,n,输出序列的第一个元素是n,则第i个输出元素是(C)。 (A)n-i(B)n-i-1(C)n-i+1(D)不确定 8.设有一个栈,元素的进栈次序为A,B,C,D,E,下列(C)是不可能的出栈序列 (A)A,B,C,D,E(B)B,C,D,E,A (C)E,A,B,C,D(D)E,D,C,B,A 9.在一棵度为3的树中,度为3的结点数有2个,度为2的结点数有1个,度为l的结点数有2个,那么度为0的结点数有(C)个。 (A)4(B)5(C)6(D)7 10.在一个具有n个结点的无向完全图中,包含有(A)条边。 (A)n(n-1)/2(B)n(n-1)(C)n(n+1)/2(D)nn 11.采用顺序查找法查找长度为n的线性表.则查找每个元素的平均比较次数为(C) (A)n(B)n/2(C)(n+1)/2(D)(n-1)/2 12.已知一个有序表为(13,18,24,35,47,50,62,83,90,115,134),当二分查找值为90的元素时,需(B)次比较可查找成功。 (A)1(B)2(C)3(D)4 13.在顺序存储的线性表R[029]上进行顺序查找的平均查找长度为(①B),进行二 分查找的平均查找长度为(②D),讲行分块查找(设分为5块)的平均查找长度为(③D) ①(A)15(B)15.5(C)16(D)20 ②(A)4(B)62/15(C)64/15(D)25/6 ③(A)6(B)11(C)5(D)6.5 14.在所有排序方法中,关健码的比较次数与记录的初始排列无关的是(D)。 (A)Shell排序 (c)直接插入排序 15.已知8个元素(34,76,45,18,26,54,92,65),按照依次插入结点的方法生成一棵二叉排序树,该树的深度为(C)。 (A)4(D)5(L)6(D)7 二、填空题(22分,前4题每空2分,第5题每空1分) 1.若要在一个单链表的*p结点之前插入一个*s结点时,可执行下列操作 s->next=__p一>next___;p->next=s;t=p->data;p->data=_s一>data__;s->data=_____T_______。 2.计算机软件系统中有两种处理字符串长度的方法,一种是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 模拟 试题