整理带答案的数据结构补充习题Word下载.docx
- 文档编号:22051388
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:147
- 大小:297.98KB
整理带答案的数据结构补充习题Word下载.docx
《整理带答案的数据结构补充习题Word下载.docx》由会员分享,可在线阅读,更多相关《整理带答案的数据结构补充习题Word下载.docx(147页珍藏版)》请在冰豆网上搜索。
A)S->
next=P->
next;
P->
next=S;
B)P->
next=S->
S->
next=P;
C)S->
next=S;
D)P->
14.已知L是带表头结点的非空单链表,且P结点是S结点的直接前驱。
则删除S结点的语句序列为。
I.P->
next=S;
free(P)
II.P->
next=P->
next->
next;
free(S)
III.P->
next=S->
free(S)
IV.P=P->
next;
free(S)
A)I和II正确B)II和III正确
C)III和IV正确D)全部正确
15.已知L是带表头结点的单链表,则删除首元结点的语句序列是()。
A)L->
next=L->
free(L)
B)P=L;
L=P->
C)P=L->
L->
next=P->
D)P=L;
16.已知L是一带有头结点的单链表的头指针,则该单链表为空的条件是。
17.已知P结点是某双向链表的中间结点,则删除P结点的语句序列是,,free(P);
18.设将整数1,2,3,4,5依次进栈,最后都出栈,出栈可以在任何时刻(只要栈不空)进行,则出栈序列不可能的是()。
A)32415B)45231C)32145D)45321
19.在栈中由顶向下已存放元素c,b,a在第4个元素d入栈前,栈中元素可以出栈,则不可能的出栈序列是
A)dcbaB)cbdaC)cdbaD)cadb
21.设有栈S和队列Q,其初始状态为空,元素a1,a2,a3,a4,a5,a6依次入栈,出栈的元素进入队列Q。
若元素出队列的顺序是a2,a4,a3,a6,a5,a1,则栈的容量至少是。
22.某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作,则abcde顺序入队,不可能的到的顺序是()。
A.bacdeB.dbaceC.dbcaeD.ecbad
23.设用一维数组A[n]存储一个栈,令A[n]为栈底,用整型变量T指示当前栈顶位置,A[T]为栈顶元素。
当从栈中弹出一个元素时,变量T的变化为()。
A)T=T+1B)T=T-1
C)T不变D)T=n-1
24.循环队列是满队列的条件是。
A)Q.rear=Q.frontB)(Q.rear+1)%maxsize=Q.front
C)Q.rear=0D)Q.front=0
25.在具有m个单元的顺序存储的循环队列中,假定front和rear分别为队首指针和队尾指针,则判断队满的条件是()
A.front==(rear+1)%mB.front+1==rear
C.front==rearD.rear==m
26.在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队首指针和队尾指针,则判断队空的条件是()
A)front==(rear+1)%nB)front+1==rear
C)front==rearD)front==0
27.循环队列用数组A[0‥m-1]存放其数据元素。
设front指向其实际的队头,rear指向其实际队尾的下一个位置,则当前队列中的数据元素有个。
28在串的运算中,StrLength(Concat(’aa’,’bb’))的返回值为
A)0
B)8
C)6
D)4
29.设s1=”Ihave_”,s2=”adream”,则strcat(s1,s2)的值是Ihave_adream,SubString(s1,4,3)的值是ave。
30.设s1=”Iamastudent”,s2=”astudent”,则Index(s1,s2)的值是。
31.假设有二维数组A5×
6,每个元素用相邻的4个字节存储,存储器按字节编址。
已知A的基地址为1000,则数组A的最后一个元素a45的第一个字节的地址是;
按行存储时,元素a14的第一个字节的地址是。
32.已知二维数组A[1..7,1..7]按列存放,其起始存储位置为100,每个元素占用4个字节,则元素A[4,6]的第一个字节的地址为。
A)204B)252C)208D)256
33.一个非空广义表的表头()。
A.一定是子表B.一定是原子
C.不能是子表D.可以是原子,也可以是子表
34.设广义表L=((a,b),c,()),则head(L)=,tail(L)=。
二、算法题
1.写出下列程序段的功能。
StatusA(LinkedListL){//L是无表头结点的单链表
If(L&
&
L->
next){
Q=L;
L=L->
P=L;
While(P->
next)P=P->
next=Q;
Q->
next=NULL;
}
ReturnOK;
2.写出下列程序段的输出结果。
voidmain(){
StackS;
charx,y;
InitStack(S);
x=’i’;
y=’s’;
Push(S,x);
Push(S,’r’);
Push(S,y);
Pop(S,x);
Push(S,’h’);
Push(S,’c’);
while(!
StackEmpty(S)){Pop(S,y);
printf(y);
}
printf(x);
3.写出下列程序段的输出结果。
QueueQ;
InitQueue(Q);
charx=’e’,y=’c’;
EnQueue(Q,‘a’);
EnQueue(Q,‘d’);
EnQueue(Q,y);
DeQueue(Q,x);
EnQueue(Q,x);
EnQueue(Q,‘r’);
QueueEmpty(Q)){DeQueue(Q,y);
printf(y);
4.已知L是带头结点的单链表。
试写一算法求该单链表的长度。
5.已知L是带头结点的单链表。
试写一算法在该链表上查找值为x的元素。
6.将带头结点的L中的第i个数据元素删除。
7.在带头结点的L中第i个元素之前插入数据元素e。
8.正位序输入n个元素的值,建立带头结点的单链表L。
9.已知线性表中的元素以值递增有序排列,并以带有头结点的单链表作存储结构。
试写一算法删除表中所有值大于mink且小于maxk的元素,同时释放被删除的结点空间。
10.LA和LB是两个数据元素按升序排列的单链表,将LA和LB合并为有序单链表LC。
写出这两个有序链表合并的算法。
第六章
1.已知完全二叉树的第7层上有10个叶子结点,则整个二叉树的结点数最多是
A)73B)63C)235D)245
2.300个结点的完全二叉树的叶结点有个。
3.一个具有1025个结点的二叉树的高h为____。
A)11B)10C)11至1025之间D)10至1024之间
4.m叉树的第i层至多有个结点
5.将一棵有100个节点的完全二叉树从上到下,从左到右依次对节点进行编号,根节点的编号为1,则编号为49的节点的右孩子编号为()。
A
B
C
D
E
F
A.99B.98C.50D.48
6.把如右图所示的树转换成二叉树时,C是()
A.A的左子女B.A的右子女
C.B的左子女D.B的右子女
7.设森林F中有3棵树,其结点个数分别是n1、n2和n3,则与森林对应的二叉树根结点的右子树上的结点个数是。
A)n1-1B)n1+n2C)0D)n2+n3
8.在一颗度为4的树T中,若有20个度为4的结点,10个度为3的结点,5个度为2的结点,10个度为1的结点,则树T的叶结点个数有个。
9.一棵二叉树中序遍历结果为DCBAEFG,后序遍历结果为DCBGFEA。
则此二叉树先序遍历的结果应为
A)ABCDEFGB)ABECFDGC)AEBFCGDD)不能确定
10.将一棵树t转换为孩子—兄弟链表表示的二叉树h,则t的后根遍历是h的
A)先序遍历B)中序遍历C)后序遍历C)层序遍历
11.现有一段电文共100个字符,其中A出现50次,B出现20次,C出现5次,D出现10次,E出现15次。
现对这5个字符进行哈夫曼编码,则其平均码长为。
二、解答题
1.某二叉树的中序遍历结果为DEFABCG;
后序遍历结果为FEDCBAG。
(1)画出此二叉树,并给出其先序遍历的结果。
(2)画出与这棵二叉树对应的树(森林)。
2.已知一个二叉树的先序遍历序列为:
ABDGIECFH;
中序遍历序列为:
DIGBEAFHC。
(1)画出该二叉树
(2)画出下图所示森林对应的二叉树。
AA
CA
BA
DA
EA
HA
IA
FA
GA
JA
K
LA
3.某二叉树层序序列为abcdefghij,中序序列为bgdhjaecif。
(1)画出该二叉树;
(2)画出该二叉树的后序后继线索树;
(3)画出该二叉树对应的树或森林。
4.已知某通讯用电文仅有A、B、C、D、E、F六个字符构成,其出现的频率分别为26,8,17,11,28,10,请首先建立哈夫曼树,然后给出六个字符的哈夫曼编码(注:
建立哈夫曼树时权值小的为左子树,权值大的为右子树)。
三、算法题
1.以二叉链表作为二叉树的存储结构,编写以下算法:
(1)求先序序列为k的结点的值
(2)求二叉树中叶子结点的数目
(3)交换所有结点的左右子树
(4)求二叉树的深度
第七章
一.单选或填空题
1.若某有向图的邻接矩阵A只有0和1两种元素,其中aij=1表示有向图中存在弧<
i,j>
,则编号为i顶点的入度可用表示。
A)邻接矩阵中第i行元素之和B)邻接矩阵中第i列元素之和
C)邻接矩阵中对角线元素之和D)以上均不正确
2.使用邻接表作为某无向图的存储结构,若无向完全图中有n个顶点,则邻接表中必存在个表结点。
A)n2B)2nC)n(n-1)D)2n-1
3.一个含有n个顶点和e条边的无向图,在其邻接矩阵存储结构中共有()零元素。
A.eB.2eC.n2-eD.n2-2e
4.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的()倍。
A.1/2B.1C.2D.4
5.下列关于图的叙述中,正确的是()
Ⅰ、回路是简单路径
Ⅱ、存储稀疏图,用邻接矩阵比邻接表更省空间
Ⅲ、若有向图中存在拓扑序列,则该图不存在回路
A.仅ⅡB.仅Ⅰ、ⅡC.仅ⅢD.仅Ⅰ、Ⅲ
6.有n个顶点的无向图至少有条边才能确保是一个连通图。
7.在有n个结点的无向图中,其边数最多为。
8.对于具有n个结点的连通图,它的最小生成树中有条边。
A)n2B)n-1C)n(n-1)D)n(n-1)/2
9.关键路径是AOE网中
A)从源点到汇点的最长路径B)从源点到汇点的最短路径
C)最长回路D)最短回路
10.以下关于图的描述中,正确的是
A)n个顶点的无向完全图有
条边。
B)对任何用顶点表示活动的网络(AOV网)进行拓扑排序的结果是唯一的。
C)若图G的邻接矩阵是对称的,则G一定是无向图
c
a
b
e
d
D)有向图的邻接矩阵一定是非对称矩阵
11.对下图进行拓扑排序,可以得到不同的拓扑序列的个数是()
A.5B.3C.2D.1
12.下图为用边表示活动的AOE-网。
则V8的最早发生时间是。
二、解答题
1.已知某无向图的邻接表存储结构如下图所示,求解下列问题:
(1)画出它的无向图;
(2)画出它的的邻接矩阵存储结构;
(3)从顶点A出发,画出其广度优先生成树。
2.已知无向带权图G的邻接矩阵如下所示。
(1)从顶点a出发,求其深度优先生成树;
(2)从顶点a出发,根据普里姆算法构造最小生成树,过程在下面的图
(1)至(5)中画出。
(3)给出邻接表存储结构;
3.对于如下图所示的带权有向图,求解关键路径,计算各事件(顶点)的最早发生时间和最迟发生时间,各活动(弧)的最早开始时间和最迟开始时间。
请填写在答题纸的表格中。
表1计算各事件(顶点)的最早发生时间和最迟发生时间,请填写在表1的空白处。
顶点
f
g
h
k
ve
6
4
5
7
15
14
18
vl
8
10
16
表2计算各活动(弧)的最早开始时间和最迟开始时间,请填写在表2的空白处。
弧
ab
ac
ad
be
ce
df
eg
eh
fh
gk
hk
l
3
4.对于右图,求解下列问题:
(1)写出该图的邻接矩阵;
(2)写出全部拓扑排序序列;
(3)从顶点V1出发,给出深度优先遍历生成树;
(4)按照迪杰斯特拉算法,求V1结点到各点的最短路径,填写表1的空白处。
终点
从V1到各终点的距离和最短路径的求解过程
i=1
i=2
i=3
i=4
i=5
i=6
i=7
V2
2
------
--------
V3
V4
∞
V5
13
V6
V7
V8
vj
v2
v3
第九章
一.单选或填空题
1.已知一个长度为11的有序表,使用折半查找的方法,查找第8个元素时所需进行的关键字比较次数为。
2.已知一个长度为16的有序表,使用折半查找的方法,查找一个不存在的元素,则所需进行的关键字比较次数最多是。
A.4B.5C.6D.7
3.在二叉排序树中,关键字值最大的结点
A)左指针一定为空B)右指针一定为空
C)左右指针均为空D)左右指针均不为空
4.对于下列关键字序列,不可能构成某二叉排序树中一条查找路径的序列是()
A.95,22,91,24,94,71B.92,20,91,34,88,35C.21,89,77,29,36,38D.12,25,71,68,33,34
5.AVL树是一种平衡的二叉排序树,树中任一结点的
A.左、右子树的高度均相同B.左、右子树高度差的绝对值不超过1
C.左子树的高度均大于右子树的高度D.左子树的高度均小于右子树的高度
6.以下关于查找方法的描述中,错误的是
A)平衡二叉树一定也是二叉排序树。
B)有序表的折半查找判定树是二叉排序树。
C)中序遍历一棵二叉排序树,可以得到其数据元素的升序排列。
D)后序遍历一棵二叉排序树,可以得到其数据元素的降序排列。
7.下列二叉排序树中,满足平衡二叉树定义的是()
8、在下列所示的平衡二叉树中插入关键字48后得到一棵新平衡二叉树,在新平衡二叉树中,关键字37所在结点的左、右子结点中保存的关键字分别是()
A、13,48B、24,48C、24,53D、24,90
9.从理论上讲,将数据以何()结构存放,则查找一个数据所用时间不依赖于数据个数n.
A)二叉查找数B)链表C)二叉树D)哈希表
10.为提高散列(Hash)表的查找效率,可以采取的正确措施是()
Ⅰ、增大装填(载)因子Ⅱ、设计冲突(碰撞)少的散列函数
Ⅲ、处理冲突(碰撞)时避免产生聚集(堆积)现象
A.仅ⅠB.仅ⅡC.仅Ⅰ、ⅡD.仅Ⅱ、Ⅲ
1.设记录关键字集合key={33,20,53,55,23,38,40,65},选取哈希函数为H(x)=keymod11;
解决冲突的方法为“线性探测法”。
(1)请按上述条件将key中各值依次填入下表中:
(2)求该哈希表查找成功和查找不成功情况下的平均查找长度。
2.设记录关键字集合key={32,13,49,55,22,39,20},选取哈希函数为H(x)=keymod7;
解决冲突的方法为“链地址法”。
(1)画出所构造的哈希表;
3.设记录关键字集合key={32,13,49,55,22,39,20},解决冲突的方法为“线性探测法”,要求装填因子为:
0.7,哈希函数的形式为H(x)=keymodP,散列表的地址从0开始。
(1)构造哈希函数;
(2)画出所构造的哈希表;
4.选取哈希函数H(key)=(3*key)mod11。
用开放定址法处理冲突,di=i((7*key)%10+1)(i=1,2,3…)。
试在0~10的散列地址空间对关键字序列(22,41,53,46,30,13,01,67):
1)构造该序列对应的哈希表;
2)求等概率情况下查找成功的平均查找长度。
哈希表如下图所示:
5.从空树开始,依次插入13,34,51,24,62,43,75,18,画出建立2-3树后的状态,并分别画出删除43、24后的2-3树状态。
6.画出对长度为12的有序表进行折半查找的判定树,并求其等概率查找成功时的平均查找长度。
第十章
1.数组中原有数据如下:
15,13,20,18,12,60。
下面是一组用不同排序方法进行一趟排序后的结果。
则ABCD四个选项中,说法正确的是
I.12,13,15,18,20,60II.13,15,18,12,20,60
III.13,15,20,18,12,60IV.12,13,20,18,15,60
V.13,15,18,20,12,60
A)I快速排序;
II简单选择排序;
III直接插入排序;
IV冒泡排序;
V归并排序
B)I冒泡排序;
II快速排序;
III归并排序;
IV简单选择排序;
V直接插入排序
C)I快速排序;
II冒泡排序;
D)I直接插入排序;
II归并排序;
III快速排序;
V冒泡排序
2.对一组数据(2,12,16,88,5,10)进行排序,若前三趟排序结果如下:
第一趟:
2,12,16,5,10,88
第二趟:
2,12,5,10,16,88
第三趟:
2,5,10,12,16,88
则采用的排序方法可能是()
A.冒泡排序法B.希尔排序法C.归并排序法D.基数排序法
3.若一组记录的排序码为(45,78,56,36,40,87),则初始小根堆的结果为
A.36,45,56,78,40,87B.87,78,56,36,40,45
C.40,36,45,56,78,87D.36,40,56,78,45,87
4.已知序列25,13,10,12,9是大根堆,在序列尾部插入新元素18,将其再调整为大根堆,调整过程中元素之间进行的比较次数是()
A.1B.2C.4D.5
5.已知关键序列5,8,12,19,28,20,15,22是小根堆(最小堆),插入关键字3,调整后得到的小根堆是
A.3,5,12,8,28,20,15,22,19
B.3,5,12,19,20,15,22,8,28
C.3,8,12,5,20,15,22,28,19
D.3,12,5,8,28,20,15,22,19
7.下列排
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整理 答案 数据结构 补充 习题