数据结构复习卷Word下载.docx
- 文档编号:19061206
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:27
- 大小:136.58KB
数据结构复习卷Word下载.docx
《数据结构复习卷Word下载.docx》由会员分享,可在线阅读,更多相关《数据结构复习卷Word下载.docx(27页珍藏版)》请在冰豆网上搜索。
9.从二叉搜索树中查找一个元素时,其时间复杂度大致为(A)
AO(n)BO
(1)CO(log2n)DO(n2)
10.有权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为(D)
A24B48C72D53
二.填空题
1.设有程序段为
for(i=1;
i<
10;
i++)
for(j=1;
j<
=i;
j++)
{p=i*j;
printf(“%4d\n”,p);
}
则执行p=i*j的次数为。
2.在单链表中某P结点后插入S结点的操作是。
3.有一个10阶上三角矩阵A,采用压缩方式(以行序为主存储)存储在一维数组B中,若A[1,1]存储在B[1]中,则A[5,8]存储在B[]中。
4.链队列lq为空的条件为。
5.设有二叉树根结点的层次为0,一棵高度为h的满二叉树中的叶子结点个数是。
6.哈希查找是通过来确定记录的存储地址的。
7.在有向图的邻接表表示中,每个顶点邻接表中所含的结点数等于该顶点的。
8.普里姆算法适用于求的网的最小生成树。
9.直接插入排序在初始有序时,进行次关键字比较。
10.设序列{25,36,40,45,48,56,60,68,72,85},当用折半查找方法查找36时,所需比较的次数为。
三应用题
1.图中数组a中链接存储着一个线性表,表头指针为a[0].next。
a012345678
60
56
42
38
74
25
4
3
7
6
2
1
Data
Next
该线性表为:
2.已知一个堆为(12,15,40,38,26,52,48,64),若需要从堆中依次删除四个元素,请给出每删除一个元素后堆的状态。
3.已知一个图的邻接表如下所示.请画出该邻接表表示的图,并依此邻接表进行从顶点A出发的深度优先遍历,求出由此得到的遍历序列和深度优先生成树.
4.假设一棵树的先根序列为ABCEFIJGHKD,后根序列为BEIJFGKHCDA。
请画出该树。
5.请用克鲁斯卡尔算法构造下图所示网络的最小生成树。
四.算法填空
从一位数组A[n]中二分查找关键字为K的元素的递归算法,若查找成功则返回对应元素的下标,否则返回-1。
IntBinsch(ElemTypeA[],intlow,inthigh,KeyTypeK)
{
if(low<
high)
{
intmid=(low+high)/2;
if(K==A[mid].key)_________________;
elseif(K<
A[mid].key)_________________________;
else________________________;
elsereturn–1;
}
五.算法设计题
1.按所给的函数原型编写一个算法,从表头指针为HL的单链表中查找出具有最大值的结点,该最大值由函数返回,若单链表为空则终止运行。
ElemTypeMaxValue(Lnode*HL)
答案:
一、选择题
5
8
9
10
C
B
A
D
二.填空题
1.452.s->
next=p->
p->
next=s;
3.384.Lq->
rear==lq.front
5.2h6.计算哈希函数值
7.出度8.边稠密
9.n-110.2
三.应用题
1.38,56,25,60,42,74
2.
15264038645248
26384048645248
3848405264
40486452
3.
(1)该邻接表表示的图:
(2)从顶点A出发的深度优先遍历序列:
ABDCE
深度优先生成树:
4.
(1)因为树的先根和后根遍历序列分别与其转换后对应的二叉树的先根和中根遍历序列相同,所以可先得到的对应的二叉树如下图所示:
(2)根据树与二叉树的转换规则,可得到树如下图所示:
5.最小生成树如下图所示:
四.算法填空
returnmidreturnBinsch(A,low,mid-1,K)returnBinsch(A,mid+1,high,K)
1.ElemTypeMaxValue(Lnode*HL)
if(HL==NULL)
return–1;
Lnode*p=HL;
ElemTypex=p->
data;
While(p)
{if(p->
data>
x)x=p->
p=p->
returnx;
数据结构试题
(二)
一、选择
1.数据结构中,与所使用的计算机无关的是数据的( )结构。
A顺序B物理C逻辑D物理和存储
2.在长度为n的顺序表中插入一个元素时,等概率情况下的平均移动元素的次数是( )
A(n-1)/2Bn/2Cn*(n-1)/2D(n+1)/2
3.对于一个头指针为H的带头结点的单链表,判定该表为空表的条件是( )。
AH==NULLBH!
=NULLCH→next==HDH→next==NULL
4.在一个顺序表中,若表的第一个元素的存储地址是210,每一个元素的长度为3,则第5个元素的存储地址是( )。
A219B222C225D228
5.栈S最多能容纳4个元素,现有6个元素按a,b,c,d,e,f的顺序进栈,下面序列( )是可能的出栈序列。
AedcbafBbcefad
CcbedafDadfebc
6.循环队列用数组A[M]存放元素,已知其头尾指针分别为front和rear,则当前队列中的元素个数是( )。
Arear-front+1
Brear-front-1
Crear-front
D(rear-front+M)%M
7.已知一棵二叉树的有35个叶子结点,则该二叉树至少有()个结点。
A69B70C71D72
8.在有向图的顶点的拓扑序列中,如果Vi在Vj之前,则下列情况一定不会出现的是()
A图中有弧B图中Vi到VJy有一条路径
C图中没有弧D图中有弧<
Vj,Vi>
9.下列哪种排序方法在最坏的情况下的时间复杂度是O(n*log2n)()
A直接插入排序B堆排序C简单选择排序D快速排序
10.在一棵6阶的B-树中,除根结点外,每个结点中的至少有( )个关键字。
A5B4C3D2
二、填空题
1.设有程序段为
for(j=1;
printf("
%4d\n"
p);
则执行p=i*j的次数为
2.在单链表中某P结点后插入S结点的操作是
3.有一个10阶三角矩阵A,采用压缩方式(以行序为主存储)存储在一维数组B中,若A[1,1]存储在B[1]中,则A[5,8]存储在B
4.链队列lq为空的条件为
5.设有二叉树根结点的层次为0,棵高度为h的满二叉树中的叶子结点个数是
6.由分别带权为9,2,5,7的四个叶子结点构造的哈夫曼树的带权路径长度为
7.在有向图的邻接表表示中,每个顶点邻接表中所含的结点数等于该顶点的
8.普里姆算法适用于求的网的最小生成树。
9.直接插入排序在初始有序时,进行次关键字比较。
10.设序列{25,36,40,45,48,56,60,68,72,85},当用折半查找方法查找36时,所需比较的次数分别为
三、应用题
1.已知一组数据元素为(57,24,96,73,18,45,30,40,82),要求:
(1)试从空树开始画出按元素排列顺序输入而生成的一棵二叉排序树;
(2)画出删除结点57后的二叉排序树。
2.已知一个图的邻接表如下所示.请画出该邻接表表示的图,并依此邻接表进行从顶点A出发的深度优先遍历,求出由此得到的遍历序列和深度优先生成树.
3.已知关键字序列{34,26,47,12,63,41,22,59},利用堆排序的方法对其排序。
(1)写出在构成初始堆后关键字的排列情况。
(2)写出在堆排序的过程中输出前4个记录时,每次调整后关键字的排列情况。
4.选取哈希函数为H(K)=K%13,用链地址法处理冲突。
试在0~12的散列地址空间中对关键字序列{87,25,310,08,27,132,68,95,187,123,70,63,47}构造哈希表,并求出等概率下查找成功的平均查找长度。
四、算法设计题
1.编写算法判断带表头结点的单链表L是否是递增的。
若递增返回1,否则返回0。
2.设二叉树T采用二叉链表结构存储,数据元素为字符类型。
设计算法求出二叉链表中data域为大写字母的结点个数。
数据结构试题(三)
1.数据结构中,与所使用的计算机无关的是数据的( )结构。
A.顺序B.物理C.逻辑D.物理和存储
2.在一个长度为n的线性表中顺序查找值为x的元素时,在等概率情况下查找成功时的平均查找长度为()。
A.nB.n/2C.(n+1)/2D.(n-1)/2
3.对于一个头指针为H的带头结点的单链表,判定该表为空表的条件是( )
A.H==NULLB.H!
=NULLC.H→next==HD.H→next==NULL
4.在一个顺序表中,若表的第一个元素的存储地址是210,每一个元素的长度为3,则第5个元素的存储地址是( )。
A.219B.222C.225D.228
5.栈S最多能容纳4个元素,现有6个元素按a,b,c,d,e,f的顺序进栈,下面序列( )是可能的出栈序列。
A.edcbafB.bcefadC.cbedafD.adfebc
6.循环队列用数组A[M]存放元素,已知其头尾指针分别为front和rear,则当前队列中的元素个数是( )。
A.rear-front+1B.rear-front-1
C.rear-frontD.(rear-front+M)%M
7.已知一棵二叉树有35个叶子结点,则该二叉树至少有()个结点。
A.69B.70C.71D.72
8.在有向图的顶点的拓扑序列中,如果Vi在Vj之前,则下列情况一定不会出现的是()
A. 图中有弧<
Vi,Vj>
B. 图中Vi到Vj有一条路径
C.图中没有弧<
D. 图中有弧<
9.栈的插入和删除操作在()进行。
A.栈顶B.栈底C.任意位置D.指定位置
A.5B.4C.3D.2
1.队列的插入操作在_____________进行,删除操作在_________________进行。
2.在一个顺序队列Q中,判断队空的条件为___________,判断队满的条件为___________。
3.在一个链栈中,若栈顶指针等于NULL则为_____________;
在一个链队中,若队首指针与队尾指针的值相同,则表示该队为__________________或该队____________________。
4.中缀表达式3*(x+2)-5所对应的后缀表达式为______________________。
5.一个算法的时间复杂度为(3n3+2n-7)/(5n),其数量级表示为__________________。
6.对于一棵具有n个结点的二叉树,若一个结点的编号为i(1<
=n),则它的左孩子结点的编号为_____________,右孩子结点的编号为___________,双亲结点的编号为__________。
7.在一棵高度为5的理想平衡树中,最少含有_________个结点,最多含有_________个结点。
8.对于一个具有n个顶点和e条边的有向图和无向图,若采用邻接表存储,则存于表中的边数分别为__________和___________条。
9.对于一个具有n个结点和e条边的连通图,其生成树中的顶点树和边数分别为_________和___________。
10.设待排序的表为(42,55,12,47,94,06,18,63),利用快速排序方法对其进行排序,经第一趟排序后,表的状态为___________。
2.已知一个稀疏矩阵如图所示:
0400000
100-3001
8000000
0005000
1-700020
1006000
(1)给出它的三元组线性表;
(2)给出它的带行指针向量的链接存储表示;
2.有七个带权结点,其权值分别为{3,7,18,2,6,10,14},试以它们为叶子结点构造一棵哈夫曼树(请按照每个结点的左子树根结点的权小于等于右子树根结点的权的次序构造),并计算出该树的带权路径长度。
4假定一棵二叉树如图所示
分别写出按前序,中序,后序遍历得到的结点序列:
前序:
中序:
后序:
5.某连通图如下图所示:
12
613
815
416
20
12910
5
(1)画出最小生成树并求出它的权。
(2)从顶点v0出发,按照普里姆算法并入最小生成树中各边的次序写出各条边。
if(_________________)returnmid;
elseif(_______________________)returnBinsch(A,low,mid-1,K)
1.有一带表头结点的单链表,其结点的元素值以非递减有序排列,编写一个算法在该链表中插入一个元素x,使得插入后的单链表仍有序。
2.已知一棵具有n个结点的完全二叉树被顺序存储在一维数组中,结点为字符类型,编写算法打印出编号为k的结点的双亲和孩子结点。
1.队尾队首
2.front==rearfront==(rear+1)%MaxSize
3.空栈空队列只有一个元素
4.3x2+*5-
5.O(n2)
6.2i2i+1i/2
7.1631
8.e2e
9.nn-1
10.(18,06,12,42,94,47,55,63)
1.{(1,2,4),(2,1,1),(2,4,-3),(2,7,1),(3,1,8),(4,4,5),(5,1,1),(5,2,-7),(5,6,2),(6,1,1,)}
(1)哈夫曼树
(2)带权路径长度WPL=(2+3)*4+(6+7+10)*3+(14+18)*2=153
(1)初始堆:
{12,26,22,34,63,41,47,59}
(2)输出12后:
{22,26,41,34,63,59,47}
输出22后:
{26,34,41,47,63,59}
输出26后:
{34,47,41,59,63}
输出34后:
{41,47,63,59}
25,16,8,37,30,28,26,29,32,35,48,60
8,16,25,26,28,29,30,32,35,37,48,60
8,16,26,29,28,35,32,30,60,48,37,25
5.46
(0,1)6,(1,6)4,(2,6)9,(2,3)5,(3,4)10,(0,5)12
K==A[mid].key
K<
A[mid].key
returnBinsch(A,mid+1,high,K)
1.voidalgo1(LNode*H,ElemTpx)
{s=(LNode*)malloc(sizeof(LNode));
s->
data=x;
q=H;
p=H->
while(p&
&
data<
=x){
q=p;
}
q->
2.
intalgo2(charbt[],intn,intk){
if(k<
1||k>
n)return0;
if(k==1)printf(“%cisaroot\n”,bt[1]);
elseprintf(“%c’sparentis%c\n”,bt[k],bt[k/2]);
if(2*k<
=n)printf(“%c’slchildis%c\n”,bt[k],bt[2*k]);
elseprintf(“%cisnotlchild\n”,bt[k]));
if(2*k+1<
=n)printf(“%c’srchildis%c\n”,bt[k],bt[2*k+1]);
elseprintf(“%cisnotrchild\n”,bt[k]));
return1;
数据结构试题(四)
一、判断题(10×
1分,若正确打√,错误打×
)
1.线性表的逻辑顺序总是与其物理顺序一致。
()
2.在长度为n的顺序表中,求第i个元素的直接前驱算法的时间复杂度为0
(1)( )
3.链队列的出队操作总是需要修改尾指针。
4.任何一棵二叉树的叶结点在三种遍历中的相对次序是不变的。
( )
5.采用不同的遍历方法,所得到的无向图的生成树总是相同的。
6.边数很少的稀疏图,适宜用邻接表表示。
7.在二叉排序树中插入新结点时,新结点总是作为叶子结点插入。
( )
8.当待排序序列初始有序时,简单选择排序的时间复杂性为O(n)。
()
9.顺序查找法适用于存储结构为顺序或链接存储的线性表。
10.哈希查找法中解决冲突问题的常用方法是除留余数法。
二、单项选择题(10×
2分)
1.评价一个算法时间性能的主要标准是【】。
A.算法易于调试B.算法易于理解C.算法的稳定性和正确性D.算法的时间复杂度
2.线性表采用顺序存储的缺点是【】。
A.存储密度降低B.插入和删除操作效率低
C.元素的逻辑顺序和物理顺序不一致D.只能顺序访问
3.在一个长度为n的顺序表中插入一个元素时,等概率情况下的平均移动元素的次数是【】
A.n/2B.(n-1)/2C.n*(n-1)/2D.(n+1)/2
4.将递归算法转换成对应的非递归算法时,通常使用【】。
A.栈 B.队列 C.链表 D.矩阵
5.一棵有124个叶子结点的完全二叉树,至多有【】个结点。
A.251B.250C.248D.247
6.对用邻接表表示的连通图进行深度或广度优先遍历时的时间复杂度为【】。
A.O(n2)B.O(e2)C.O(n+e)D.O(n2)
7.在有向图的顶点的拓扑序列中,如果Vi在Vj之前,则下列情况一定不会出现的是【】
A.图中有弧<
B.图中Vi到Vj有一条路径
D.图中有弧<
8.对表(21,36,40,44,58,64,79,73)进行排序,使用下列哪种方法最好?
【】
A.简单选择排序B.堆排序C.冒泡排序D.归并排序
9.下列排序方法中,稳定的是【】。
A.归并排序 B.快速排序 C.堆排序 D.希尔排序
10.已知8个数据元素为(34,76,45,18,26,54,92,65),按照依次插入结点的方法生成
一棵二叉排序树后,最后两层上的结点总数为【】。
A.1B.2C.3D.4
三
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 复习