数据结构作业题库 综述.docx
《数据结构作业题库 综述.docx》由会员分享,可在线阅读,更多相关《数据结构作业题库 综述.docx(20页珍藏版)》请在冰豆网上搜索。
数据结构作业题库综述
2章:
线性表
1、将图示的S所指结点加到P所指结点之后,其语句应为(C)。
A.s->next=p+1;p->next=s;B.(*p).next=s;(*s).next=(*p).next;
C.s->next=p->next;p->next=s;D.s->next=p->next;p->next=s->next;
2、在双向循环链表p所指结点之后插入s所指结点的操作是(D)。
A.p->next=s;s->prior=p;p->next->prior=s;s->prior=p->next;
B.p->next=s;p->next->prior=s;s->prior=p;s->next=p->next;
C.s->prior=p;s->next=p->next;p->next=s;p->next->prior=s;
D.s->prior=p;s->next=p->next;p->next->prior=s;p->next=s;
3、线性表的存储结构是一种(A)的存储结构。
A.随机存取B.顺序存取C.索引存取D.HASH存取
4、若线性表采用顺序存储结构,每个元素占用4个存储单元,第一个元素的存储地址为100,则第12个元素的存储地址是(B)
5、在一个长度为n的顺序表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要向后移动(B)个元素。
A.n-iB.n-i+1C.n-i-1D.i
6、删除一个双链表中结点p(非头结点和尾结点)的操作是(B)
A.p->left->right=p->left;p->right->left=p->right
B.p->left->right=p->right;p->right->left=p->ieft
C.p->left=NULL;p->right=NULL
D.p->right->left=p;p->left->right=p
7、非空的循环单链表head的尾结点(由p所指向)满足(C)。
A.p->next=NULL;B.p=NULL;
C.p->next=head;D.p=head;
8、下列描述线性表叙述错误的是(A )。
(A)线性表的顺序存储的元素是从小到大顺序排列的
(B)线性表的链接存储,便于插入、删除操作
(C)除第一个元素和最后一个元素外,其余每个元素有且仅有一个直接前驱和直接后继
(D)线性表可以为空
9、非空的单循环链表L的尾结点P↑,满足(C)
(A)P↑.next=NIL;(B)P=NIL;
(C)P↑.next=L;(D)P=L;
10、L是带头结点的单向链表的表头指针,则该表为空的条件是__C_
A.n=0B.L=NIL
C.L->next=NILD.L->next=L
11、某带头结点的单链表的头指针为head,判定该链表为非空的条件是(D)
A.head==NULLB.head->next==NULL
C.head!
=NULLD.head->next!
=NULL
12、在一个单链表中,若要删除P结点的后继结点,则执行:
_A____
Ap->next=p->next->next;
Bp=p->next;p->next=p->next->next;
Cdispose(p->next);
Dp=p->next->next;
13、链表不具有的特点是___1_______。
(1)可随机访问任一元素
(2)插入删除不需要移动元素
(3)不必事先估计存储空间(4)所需空间与线性表长度成正比
14、在有几个结点的单链表P中,查找指定结点X的后继结点Q的算法Next(P,X,Q)的时间复杂度为______________
A.O(n)B.O
(1)C.O(c*n)D.O(c)(c表示一常数)
15、在单项链表中删除一个指定结点的后继的时间复杂度为[ ]
A.O(n) B.O(nlog2n)
C.O
(1) D.O(√n)
16、若某链表中最常用的操作是在最后一个结点之后插入一个结点和删除最后一个结点,则采用——存储方式最节省运算时间。
(1)单链表
(2)双链表
(3)单循环链表(4)带头结点的双循环链表
3章:
栈和队列
1.设数组A[0……m]作为循环队列sq的存储空间,front为队头指针,rear为队尾指针,则执行入队操作时修改指针的语句是()。
A.sq.front=(sq.front+1)%mB.sq.front=(sq.front+1)%(m+1)
C.sq.rear=(sq.rear+1)%mD.sq.rear=(sq.rear+1)%(m+1)
2.设有一足够大的栈,入栈元素的顺序为W,X,Y,Z,判断下列哪一个出栈序列是不可能的序列:
_______。
A.X,Y,Z,WB.Z,W,Y,XC.Z,Y,X,WD.Y,Z,X,W
3.队列的特点是(C)。
A.随机进出B.先进后出C.先进先出D.按大小顺序进出
4..栈和队列的共同点是(C)。
A.都是先进后出B.都是先进先出
C.只允许在端点处插入和删除元素D.没有共同点
5.判定一个循环队列QU(最多元素为m0)为满队列的条件是(C)
A.QU->front==QU->rearB.QU->front!
=QU->rear
C.QU->front==(QU->rear+1)%m0D.QU->front!
=(QU->rear+1)%m0
6.栈上可进行的操作是(C)
A.访问栈的第i个元素B.在栈的第i个元素之后插入元素x
C.在栈顶插入一个元素D.删除栈底元素
7.设元长度为L,对队列q作出队DEL(q)运算后( A)
A.队头指针增量LB.队尾指针增量L
C.队尾元素出队D.队首、尾指针均不动
8.设有栈S和队列Q,其初始状态为空,元素a1、a2、a3、a4、a5、a6依次入栈,出栈的元素则进入队列Q,若6个元素出列的顺序是a2、a4、a3、a6、a5、a1,则栈的容量至少是(C)
(A)6(B)4(C)3(D)2
9.设计一个判别表达式中左、右括号是否配对出现的算法,采用(B)数据结构最佳。
(A)线性表的顺序存储结构 (B)栈
(C)队列 (D)线性表的链式存储结构
10.在n(n>0)个元素的顺序栈中删除1个元素的时间复杂度为[ ]
A.O
(1) B.O(√n)
C.O(nlog2n) D.O(n)
11.计算递归函数如不用递归过程通常借助的数据结构是(D)
A、线性表 B、双向队列 C、树 D、栈
12.导致栈上溢的操作是()
A.栈满时执行的出栈B.栈满时执行的入栈
C.栈空时执行的出栈D.栈空时执行的入栈
13.设数组A[m]为循环队列Q的存储空间,front为队头指针,rear为队尾指针,则判定Q为空队列的条件是()
A.(rear-front)%m==1B.front==rear
C.(rear-front)%m==m-1D.front==(rear+1)%m
14.若进栈序列为1,2,3,4,假定进栈出栈可以穿插进行,则可能的出栈序列是_D__
A 2,4,1,3
B 3,1,4,2
C 3,4,1,2
D 1,2,3,4
综合题
1.第3章习题3.2
2.把1、2、3、4依次进栈(栈初始为空),任何时刻(只要栈不空),都可以出(退)栈,试写出所有可能的出栈序列(如1234)。
3、设一数列为1,2,3,4,5,6,通过栈操作,要得到顺序为3,2,5,6,4,1和1,5,4,6,2,3的输出序列是否可能,请阐述理由。
4.试说明抽象数据类型定义应包含哪些内容?
以栈为例说明。
5章:
树
1.一个深度为4的二叉树至多有()个结点。
A.15B.12C.17D.20
2.下列说法正确的是()
A.二叉树中任何一个结点的度都为2B.二叉树的度为2
C.一棵二叉树的度可小于2D.任何一棵二叉树中至少有一个结点的度为2
3.某二叉树T有n个结点,设按某种顺序对T中的每个结点进行编号,编号值为1、2、…n。
且具有如下性质:
T中任意结点v,其编号等于左子树上的最小编号减一,而v的右子树的结点中,其最小编号等于v左子树上结点的最大编号加一,这是按(B)编号的。
A.中序遍历B.前序遍历C.后序遍历D.层次顺序
4.一棵有124个叶结点的完全二叉树,最多有(C)个结点。
A.247B.124C.248D.125
5若一棵二叉树具有10个度为2的结点,则该二叉树的度为0的结点个数是(B)
A.9B.11
C.12D.不确定
6.已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历(D)。
A.acbedB.decabC.deabcD.cedba
7.若由森林转化得到的二叉树是非空的二叉树,则二叉树形状是(C)
A.根结点无右子树的二叉B.根结点无左子树的二叉树
C.根结点可能有左二叉树和右二叉树D.各结点只有一个儿子的二叉树
8.设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为(B)。
A.2hB.2h-1C.2h+lD.h+l
9.设结点x和结点y是二叉树T中的任意两个结点,若在先根序列中x在y之前,而在后根序列中x在y之后,则x和y的关系是( C )
A.x是y的左兄弟B.x是y的右兄弟
C.x是y的祖先D.x是y的后代
10.对如图示的二叉树进行中序遍历,所得结点序列为( )
ABEFDAGIHCBBEDFAGIHC
CEFDBAGIHCDEFDBAIHGC
11.在树的度为3的三叉树中,结点的度不可能为(A)
A.大于3B.0C.2D.3
12.由权值分别为3,9,6,2,5的叶子结点生成一棵哈夫曼树,其带权路径长度为:
( )
(A)24(B)55(C)72(D)53
13、在一个二叉树中,叶结点个数为50,仅有一个孩子的节点个数为30,那么总结点数为多少个?
(C)
(A)100(B)128(C)129(D)130
14.一棵有124个叶结点的完全二叉树,最多有()个结点。
A)247B)124C)248D)125
15.在一棵二叉树的先序遍历、中序遍历,后序遍历所产生的序列中,所有叶结点的先后顺序(B)
(A)都不相同(B)完全相同
(C)先序和中序相同,而与后序不同(D)中序和后序相同,而与先序不同
16.在下列关于二叉树的叙述,选出正确的一项(D)
(A)在二叉树中,任何一个结点的度都是2(B)二叉树的度为2
(C)在二叉树中至少有一个结点的度是2(D)一棵二叉树的度可以小于2
17.如果一棵二叉树中任一结点的值都大于其左子树中所有结点的值,且小于其右子树中所有结点的值,现欲得到各结点值的递增序列,试问应采用的遍历的方法是什么(B)
(A)先序遍历(B)中序遍历(C)后序遍历(D)层次遍历
18.设森林F中有3棵树,其第一、第二和第三棵树的结点个数分别是n1、n2和n3,则与森林F对应的二叉树根结点的右子树上的结点个数是(D)
(A)n1(B)n1+n2(C)n3(D)n2+n3
19.高度为h(h>0)的二叉树最少有()个结点
A.h B.h-1
C.h+1 D.2h
20.深度为5的二叉树其结点数最多为(C)
A、16 B、30 C、31 D、32
21.如果T2是由有序树T转换来的二叉树,则T中结点的后序排列是T2结点的(B)
A、先序排列 B、中序排列 C、后序排列 D、层序排列
22.n个结点的线索二叉树中线索的数目为(C)
A、(n-1)个 B、n个 C、(n+1)个 D、(n+2)个
23..假设一棵完全二叉树按层次遍历的顺序依次存放在数组BT[m]中,其中根结点存放在BT[0],若BT[i]中的结点有左孩子,则左孩子存放在()
A.BT[i/2]B.BT[2*i-1]
C.BT[2*i]D.BT[2*i+1]
24.右图所示二叉树的中序序列是()
A.DHEBAFIJCG
B.DHEBAFJICG
C.DBHEAFCJIG
D.DBHEAFJICG
25.在一棵二叉树的先序遍历、中序遍历,后序遍历所产生的序列中,所有叶结点的先后顺序(B)
(A)都不相同(B)完全相同
(C)先序和中序相同,而与后序不同(D)中序和后序相同,而与先序不同
26在下列关于二叉树的叙述,选出正确的一项(D)
(A)在二叉树中,任何一个结点的度都是2(B)二叉树的度为2
(C)在二叉树中至少有一个结点的度是2(D)一棵二叉树的度可以小于2
27.如果一棵二叉树中任一结点的值都大于其左子树中所有结点的值,且小于其右子树中所有结点的值,现欲得到各结点值的递增序列,试问应采用的遍历的方法是什么(B)
(A)先序遍历(B)中序遍历
(C)后序遍历(D)层次遍历
28.将图中的二叉树按中序线索化,结点X的右指针和Y的左指针分别指向()。
A.A,DB.B,CC.D,AD.C,A
综合题:
1.已知二叉树的先序和中序序列如下,试构造出相应的二叉树。
先序:
ABCDEFGHIJ
中序:
CDBFEAIHGJ
4.已知信息为“ABCDBCDBCBDBACB”,
(1)请按此信息构造哈夫曼树;
(2)计算哈夫曼树的加权路径长度WPL;
(3)求出每一字符的最优编码;
(4)写出信息编码。
5.用于通信的电文由字符集{a,b,c,d,e,f,g}中的字母构成,这7个字母在电文中出现的概率分别为{0.18,0.26,0.04,0.06,0.22,0.03,0.15}。
(1)为这7个字母设计哈夫曼编码;并计算出加权路径长度WPL。
(10分)
(2)若用三位二进制数对这7个字母进行等长编码,则哈夫曼编码的平均码长是等长编码的百分之几?
它使电文总长平均压缩多少?
(5分)
6.一棵二叉树后序遍历为DECBHGFA,中序遍历为BDCEAFHG,能不能唯一的确定一棵二叉树?
如果能够,请构造此二叉树,并写出其前序遍历序列。
(10分)
解答:
前序遍历序列:
ABCDEFGH
8.一棵度为2的树与一棵二叉树有什么区别?
9.设有一棵二叉树的顺序存储表示如下图:
A
C
B
D
G
E
F
H
试问:
⑴哪个结点是根结点?
⑵哪个结点是D的双亲结点?
⑶C的左右孩子分别是什么?
⑷画出这棵二叉树。
10.二叉树结构如图所示,写出:
A
BC(a)先序遍历序列为________________________
DEFG
(b)中序遍历序列为________________________
HIJ
(c)后序遍历序列为________________________
KLMN
11.(10分)字符abcde对应给定一组权值{2,4,6,8,10},试设计哈夫曼编码并根据哈夫曼算法写出构造过程
哈夫曼编码:
6章:
图
1.在N条边的无向图的邻接表的存储中,边表的个数有()
A.NB.N/2C.2ND.N×N
2.下面关于图的存储的叙述中,哪一个是正确的。
( A )
A.用相邻矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关
B.用相邻矩阵法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关
C.用邻接表法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关
D.用邻接表法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关
3.n个顶点的强连通图中至少含有(B)。
A.n—l条有向边B.n条有向边C.n(n—1)/2条有向边D.n(n一1)条有向边
4.设有6个结点的无向图,该图至少应有(A)条边才能确保是一个连通图。
(A)5(B)6(C)7(D)8
5.n个顶点的带权无向连通图的最小生成树包含________个顶点[ ]
A.n-1 B.n
C.n/2 D.n+1
6.连通图是指图中任意两个顶点之间()
A.都连通的无向图B.都不连通的无向图
C.都连通的有向图D.都不连通的有向图
7.下图所示带权无向图的最小生成树的权为()
A.14
B.15
C.17
D.18
综合题:
1.对给定的无向图,画出其邻接链表,并分别应用深度优先搜索法和广度优先搜索法,列出从顶点1出发时,遍历图中顶点的次序。
2.习题6.16
3.习题6.14、6.15
4.利用Dijkstra算法求下图中从顶点a到其它顶点间的最短路径,并列表写出执行算法过程中各步的状态。
(10分)
5.无向图G如图所示,试给出:
(10分)
(1)该图的邻接矩阵
(2)该图的邻接链表
(3)从V0出发的深度优先遍历序列(一种即可)
(4)从V0出发的广度优先遍历序列(一种即可)
7.对下面连通图,请分别用Prim和Kruskal算法构造其最小生成树。
(10分)
8.已某个不带权的无向图采用邻接矩阵存储方法依次将顶点的数据信息存放于一维数组ABCDEFGH中,边的信息存放于邻接矩阵中,邻接矩阵为
01100000
10001011
10010100
00100100
01000001
00110000
01000000
01001000
请写出从顶点A出发对该图进行深度优先遍历后得到的顶点序列。
9.有向图(带权)G如下所示:
试给出用迪杰斯特拉(Dijkstra)算法求上图A到其它各顶点最短路径得到的数组P各元素值(A、B、C、D、E、F编号依次是1、2、3、4、5)。
10.对于n个顶点的无向图,采用邻接矩阵表示,回答下列问题:
(1)图中有多少条边?
(2)任意两个顶点i和j是否有边连接的条件是什么?
11. 已知一个无向图的顶点集为{V0,V1,…V7},其邻接矩阵如下所示:
V0 0 1 0 1 1 0 0 0
V1 1 0 1 0 1 0 0 0
V2 0 1 0 0 0 1 0 0
V3 1 0 0 0 0 0 1 0
V4 1 1 0 0 0 0 1 0
V5 0 0 1 0 0 0 0 0
V6 0 0 0 1 1 0 0 1
V7 0 0 0 0 0 0 0 1
(1) 画出该图的图形
(2) 给出从V0出发的深度优先、广度优先遍历序列
12.已知一个图的顶点集V和边集E分别为:
V={0,1,2,3,4,5,6,7}
E={(0,1)8,(0,2)5,(0,3)2,(1,5)6,(2,3)25,(2,4)13,(3,5)9,(3,6)10,(4,6)4,(5,7)20}
按克鲁斯卡尔算法得到最小生成树,写出最小生成树中依次得到的各条边。
13.(10分))对如图所示的带权有向图,求源点V0到图中其余各顶点的最短路径。
始点终点最短路径路径长度
V0V1
V2
V3
V4
V5
7章:
查找
1.设哈希表长m=7,哈希函数H(k)=kmod3。
表中位置1,2,4,5中已存有元素,若采用线性探测法(di=1、2、3……)处理冲突,则关键字为22的结点的地址是()。
A.6B.1C.3D.7
2.已知7个数据元素为{24,17,23,21,38,52,40},按照依次插入结点的方法生成一棵二叉排序树后,最后两层上的结点总数是(A)。
A.4B.5C.2D.3
3.对一棵查找树根结点而言,左子树中所有结点与右子树中所有结点的关键字( A )
A.小于B.大于C.等于D.不小于
A.112B.144C.148D.412
4.请指出在顺序表{2、5、7、10、14、15、18、23、35、41、52}中,用二分法查找关键码12需做( C )次关键码比较。
A.2B.3C.4D.5
5.对数列{3,1,7,4,2,8,1}构造出的二叉排序树为( )
ABCD
6.设散列函数为H(k)=kmod7,现欲将关键码23,14,9,6,30,12,18依次散列于地址0~6中,用线性探测法解决冲突,则在地址空间0~6中,得到的散列表是(B)
(A)14,6,23,9,18,30,12(B)14,18,23,9,30,12,6
(C)14,12,9,23,30,18,6(D)6,23,30,14,18,12,9
7.设有一个用线性探测法解决冲突散得到的散列表,该表共有0~10个地址单元,其中地址单元2~8中的内容依次为13,25,80,16,17,6,14。
列表函数为H(k)=kmod11,若要查找元素14,探测(比较)的次数是(D)
(A)8(B)9(C)3(D)6
9.对一组记录的关键码{25,38,48,63,74}采用二分法查找52时,(C)次查找成功。
(A)4(B)3(C)2(D)1
10.设表长为n,表中每个元素的查找概率相等,则顺序查找时有____________
A.查找成功的平均查找长度为(n+1)/2
B.查找不成功的平均查找长度为(n+1)*n/2
C.查找表总是为有序表
D.查找总是从头到尾比较n次
11..采用拉链法解决冲突的散列表中,查找的平均查找长度[ ]
A.直接与关键字个数有关 B.直接与装填因子a有关
C.直接与表的容量有关 D.直接与散列函数有关
13.对线性表进行折半查找最方便的存储结构是(B)
A、顺序表 B、有序的顺序表 C、链表 D、有序的链表
15.在下列各棵二叉树中,二叉排序树是()
综合题:
1.习题