数据结构考试习题Word文件下载.docx
《数据结构考试习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构考试习题Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
D.每种数据结构都具有插入、删除和查找三种基本运算
(3)L是线性表,已知ListLength(L)的值是5,运算DeleteList(L,2)后ListLength(L)的值是()。
A.5B.0C.4D.6
(4)线性表中哪些元素只有一个直接前驱和一个直接后继()。
A.首元素B.尾元素C.中间元素D.所有的元素
(5)线性表(L)经运算InitList(L)后,函数IEmpty(L)的值是()。
A.0B.,falseC.1D.Null
(6)指针P指向循环链表L的首元素的条件是()。
A.P=LB.P->
nest=LC.L->
nest=PD.P->
nest=null
(7)线性表中各元素之间的关系是()关系。
A.层次B.网状C.有序D.集合
(8)在单链表的一个结点中有()个指针。
A.1B.2C.0D.3
(9)在双向链表的一个结点中有()个指针。
A.1B.2C.0D.3
(10)设非空单链表的数据字段为data,指针字段为next,指针p指向单链表中第i个结点,s指向已生成的新结点,现将s结点插入到单链表中,使其成为第i+1个结点,下列算法段能正确完成上述要求的是()。
A.s->
next=p->
next=s;
B.p->
s->
next;
C.s->
p->
交换p->
data和s->
data;
D.p=s;
next=p
(11)设双链表中结点的前趋指针的字段分别为t1和rl,则删除双链表中指针s所指结点的操作为()。
t1-r1=s->
t1;
s-r1=s->
r1;
B.s->
r1=s->
t1=s->
r1->
D.s->
t1=s-t1->
(12)假设left和right为双向链表中指向直接前趋结点和直接后继结点的指针字段,现要把一个指针s所指的新结点作为非空双链表中q所指结点(中间结点)的直接后继结点插入到该双向链表中,则下列算法段能正确完成上述要求的是()。
A.q->
right=s;
s-left=q;
q-right->
left=s;
s-right=q->
right;
left=q;
q->
right->
right=q->
left=q;
s-right=q->
right;
right-left=s;
q-right=s;
D.以上都不对
习题三>
(1)栈是限定在处进行插入或删除操作的线性表()。
A、端点B、栈底C、栈顶D、中间
(2)在栈顶一端可进行的全部操作时()。
A、插入B、删除C、插入和删除D、进栈
(3)4个元素按A、B、C、D、顺序连续进Szhan栈,进行Pop(S,x)元素后,x的值是()。
A、AB、BC、CD、D
(4)栈的特点是()。
A先进先出B后进先出C后进后出D不进不出
(5)栈结构的元素个数是()。
A不变的B可变的C任意的D0
(6)4个元素进S栈的顺序是A、B、C、D,进行两次Pop(S,x)操作后,栈顶元素的值是()。
A、AB、BC、CD、D
(7)同一个栈内各元素的类型()。
A必须一致B可以不一致C不能一致D不必不一致
(8)顺序栈存储空间的实现使用()。
A链表B数组C循环链表D变量
(9)一个顺序栈一旦说明,其占用空间的大小()。
A已固定B可以改变C不能固定D动态变化
(10)栈是一个线性表结构()。
A不加限制的B加了限制的C推广了的D非
(11)栈与一般线性表区别主要在方面()。
A元素个数B元素类型C逻辑结构D插入、删除元素的位置
(12)顺序栈是空栈的条件是()。
A.top==0B.top==1C.top==-1D.top==m
(13)元素A、B、C、D依次进顺序栈后,栈顶元素是()。
A.AB.BC.CD.D
(14)经过下列栈的运算后GetTop(s)的值是()。
InitStack(s);
Push(s,a);
Push(s,b);
Pop(s);
A.aB.bC.1D.2
(15)经过下列栈的运算后EmptyStack(s)的值是()。
Pop(s,x);
A.aB.bC.1D.0
(16)队列是限定在处进行插入操作的线性表()。
A.端点B.队头C.队尾D.中间
(17)队列是限定在处进行删除操作的线性表()。
(18)队列的特点是。
A.先进先出B.后进先出C.先进后出D.不进不出
(19)循环队列Sq是空队列的条件是()。
ASq->
read==Sq->
frontB(Sq->
read+1)%maxsize==Sq->
front
CSq->
read==0DSq->
front==0
(20)循环队列Sq是满队列的条件是()。
frontB(Sq->
(21)当循环队列Sq是满队列时,存放队列元素的数组data有n个元素,则data中存放个队列元素()。
A.nB.n-1C.n-2D.0
(22)经过下列运算后GetHead(Q)的值是()。
InitQueue(Q);
EnQueue(Q,a);
EnQueue(Q,b);
OutQueue(Q,x);
(23)链栈ls是空栈的条件是()。
A.ls==nullB.ls->
next==nullC.Ls==0D.ls->
next==ls
(24)设将整数1,2,3,4依次进栈,但只要出栈时栈非空,则可将出栈操作按任何次序夹入其中,请回答下述问题:
①若入、出栈次序为Push
(1),Pop(),Push
(2),Push(3),Pop(),Pop(),Push(4),Pop(),则出栈的数字序列为何(这里Push(i)表示进栈,Pop()表示出栈)?
②能否得到出栈序列1423和1432?
并说明为什么不能得到或者如何得到。
③请分析1,2,3,4的24种排列中,哪些序列是可以通过相应的入出栈操作得到的。
习题四>
(1)设S=“IAMASTUDENT”,其长度是()。
(2)串是一种特殊的线性表,其特征体现在。
A可以顺序存储B数据元素是一个字符
C可以链接存储D数据元素可以使多个字符
(3)设有两个串p和q,求q在p中首次出现的位置的运算称作()。
A连接B模式匹配C求串长D求子串
(4)设字符串S1=“ABCDEFG”,S2=“PQRST”,则运算:
S=CONCAT(SUBSTR(S1,2,LEN(S2));
SUBSTR(S1,LEN(S2),2));
后的串值为()。
A、BCDEFB、BCDEFGC、BCDPQRSTD、BCDEFER
(5)判断题
①空格串和孔串的长度均为1。
()
②串是一种特殊的线性表,其特殊性体现在数据元素可以使多个字符。
()
③判断两个串是否相等,只需要判断这两个串是否包含相同的字符即可。
④将一个n×
n的对称矩阵,以行为主序或以列为主序存入内存,其容量至少为n2。
()
⑤若采用三元组压缩技术存储稀疏矩阵,只要把每个元素的行标和列标互换,就完成了对该矩阵的转置运算。
()
习题五>
(1)对于一个二维数组A[0..m][0..n],若按行序为主序存储,则人一元素A[i][j]的存储地址为()。
(2)设数组R[1..10,-2..6,2..8]以行序为主序存储,设第一个元素的首地址为100,每个元素占3个存储单元,则元素A[5,0,7]的存储地址为()。
(3)设有一个10阶对称矩阵A采用压缩存储方式以行序为主序位存储,a85的存储地址为()。
(4)数组的基本操作主要包括()。
A建立与删除B索引与修改C访问与修改D访问与索引
(5)稀疏矩阵一般的压缩存储方法有两种,即()。
A二维数组和三维数组B三元组和散列
C三元组和十字链表D散列和十字链表
(6)设矩阵A是一个对称矩阵,为了节省空间,将其下三角矩阵按行序存放在一维数组B[1,n(n+1)/2]中,对下三角部分中任一元素aij(i≥j),在一维数B中下标k的值是()。
Ai(i-1)/2+j-1Bi(i-1/2+jCi(i+1)/2+j-1Di(i+1)/2+j
习题六>
填空题
(1)假定一棵树的嵌套括号表示法为A(B(E),C(F(H,I,J),G),D),则该树的度为(),树的深度为(),终端点的个数为(),分支结点的个数为(),双分支结点为(),三分支结点的个数为(),C结点的双亲结点为(),其孩子结点为()和()。
(2)设F是一个森林,B是由F转换得到的二叉树,F中有n个非终端结点,则B中右指针字段为空的结点有()。
(3)对于一个具有n个结点的二叉树,当它储存在二叉树表中时,其指针字段的总数为()个,其中()个用于链接孩子点,()个空暇,
(4)一棵深度为K的满二叉树结点总数为(),一棵深度为K的完全二叉树的结点总数的最小值为(),最大值为()。
(5)如果T2是由有序树T转换而来的二叉树,那么T中结点的()序是T2中结点的()。
(6)具有n个结点的完全二叉树,若按层次从上到下、从左到右对其编号(根结点为1号),则编号最大的分支结点序号为(),编号最小的分支结点序号为(),编号最大的叶子结点序号为(),编号最小的叶子结点序号为()。
(7)有m个叶子结点的哈夫曼树,其结点总数为()。
(8)由三个结点构成的二叉树,共有()种不同的结构。
选择题
(1)将一棵有100个结点的完全二叉树,从根这一层开始,每一层从左到右依次对结点编号,根据点的编号为1,则编号为49的结点的双亲的编号为()。
A.24 B.25C.23D无法确定
(2)深度为6(根据的层次为1)的二叉树至多有()结点。
A64B63C31D32
(3)设二叉树有n个结点,则其深度为。
An-1BnC㏒2nD无法确定
(4)设森林T中有三棵树,第一、第二、三棵数的活结点个数分别为n1n2n3,那么将森林转换成二叉树后,其根结点的右子树上有()个结点。
An1-1Bn2+n3Cn1+n2+n3Dn1
(5)设森林T中有三棵树,第一、二、三棵数的结点个数分别为n1n2n3,那么将森林转换成二叉树后,其根结点的左子树上有()个结点。
A.n1-1 B.n2+n3 C.n1+n2+n3 D.n1
(6)设深度为K的二叉树上只有度为0或度为2的结点,则这类二叉树上所含结点总数至少()。
A.K+1 B.2K C2K—1 D2K+1
(7)树转换成二叉树后,以下结论正确的是()。
A树的先根遍历序列与其对应的二叉树的先序遍历序列相同
B树的先根遍历序列与其对应的二叉树的中序遍历序列相同
C树的后根遍历序列与其对应的二叉树的后序遍历序列相同
D以上都不对
(8)某二叉树的前序遍历结点访问顺序为,ABDGCDFH中序遍历结点访问顺序为DGBAECHE,则其后续遍历结点访问顺序为()。
A.BDGCEFHAB.GDBECFHAC.BDGAECHFD.GDBDHFCA
(9)在一棵非空二叉树的中序遍历序列中,根结点的右边()。
A只有右子树上的所有结点B只有右子树砂锅内的部分结点
C只有左子树上的所有结点D只有左子树上的部分结点
(10)任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序()。
A不发生变化B发上变化C不能确定D以上都不对
判断题
⑴一棵度为2的树就是一棵二叉树。
⑵无序树的子树没有顺序之分,而二叉树的子树分为左子树和右子树。
()
⑶给定二叉树的先序遍历序列和后序遍历序列,就能惟一地确定一棵二叉树。
⑷先根序列和中根序列相同的二叉树中任意一个结点都无左孩子。
解答题
(1)已知一棵树边的集合为{(I,M),(I,N)(E,I),(B,E),(B,D),(A,B),(G,J),(G,K),(C,G),(C,F),(H,L),(C,H),(A,C)},画出这棵树,并回答下列问题:
A、哪个结点是根结点?
B、哪些结点是叶子结点?
C、哪个结点是结点G的双亲结点?
D、哪些结点是结点G的祖先结点?
E、哪些结点是结点G的孩子结点?
哪些结点是结点E的子孙结点?
F、哪些结点是结点E的兄弟结点?
哪些是结点F的兄弟结点?
G、结点B和N的层次分别是多少?
H、树的深度是多少?
I、以结点C为根的子树的深度是多少?
(2)说明一棵度为2的树与一棵二叉树之间的区别。
(3)试分别画出具有3个结点的树和具有3个结点的二叉树的所有结构图。
(4)按照下列给定二叉树的先序遍历序列、中序遍历和后序遍历序列,分别构造出二叉树。
①先序遍历序列:
EBADCFHGIKJ中序遍历系列:
ABCDEFGHIJK
②中序遍历序列:
ACBGEDF后序遍历序列:
ABCDEFG
(5)给定的权值{2,3,4,7,8,9},构造出相应的赫夫曼树和赫夫曼编码,并求出带权路径的长度WPL。
(6)对于图6.1给出的树,指出树中的根结点、叶结点和分支结点。
并指出各个结点的度数和层数。
(7)对图6.1所示的树,采用先根次序、后根次序和中根次序遍历。
问得到怎样的结点序列?
(8)对图6.1所示的树,分别采用先根次序的父指针表示法、子表表示法、长子-兄弟表示法,试画出各种方法的图示。
(9)已知一棵度为m的树中有n1个度为1的结点,n2个度为2的结点,…,nm个度为m的结点,问该树中有多少个叶子结点?
(10)用三个结点A,B,C可以构成多少种不同的二叉树?
请把它们画出来。
(11)将图6.1所示的树转换成对应的二叉树是什么样子?
请把它画出来。
(12)请按先根、后根和对称序遍历图6.2所示的二叉树,列出遍历所得的结点序列。
(13)请将图6.2所示的二叉树转换成对应的树林,并按先根次序和后根次序遍历树林,将遍历结果与上题结果对照比较。
(14)已知某二叉树的先根遍历序列为:
A,B,D,E,G,C,F,H,I,J,对称次序遍历序列为:
D,B,G,E,A,H,F,I,J,C,试给出该二叉树的后根次序遍历序列。
(15)试给出图6.2所示的二叉树的穿线树表示(按对称序穿线)。
(16)对下图所示的森林:
1)求各树的前序序列和后序序列;
2)求森林的前序序列和后序序列;
3)将此森林转换为相应的二叉树;
4)给出(a)所示树的双亲链表表示、孩子链表表示、双亲孩子链表表示及孩子兄弟链表表示等四种存储结构,并指出哪些存储结构易于求指定结点的祖先,哪些易于求指定结点的后代?
(17)画出下图所示的各二叉树所对应的森林。
(18)假设用于通信的电文由字符集{a,b,c,d,e,f,g,h}中的字母构成,这8个字母在电文中出现的概率分别为{0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10}。
①为这8个字母设计Huffman编码。
②若用三位二进制数(0-7)对这8个字母进行等长编码,则Huffman编码的平均码长是等长编码的百分之几?
它使电文总长平均压缩多少?
习题七>
⑴一个具有n个顶点的完全图的边数为()。
⑵无向图中的连通分量定义为无向图的()。
⑶设无向图G的顶点数为n,则G最少有()条边。
⑷一个具有n个顶点的有向完全图的弧数为()。
⑸有向图中的强连通分量定义为有向图的()。
单项选择题
(1)连通分量是()极大连通子图。
A.无向图B.有向图C树D图
(2)强连通分量是()极大连通子图。
A.无向图B.有向图C.树D.图
(3)有n个顶点的无向图的邻接矩阵是用()组存储。
A.n行n列B.一维C.任意行n列D.n行任意列
(4)有n条边的无向图的邻接表存储法中,链边中结点的个数是()个。
A.nB.2nC.n/2D.n*n
(5)一个加权的无向连通图的最小生成树()。
A.有一棵或多棵B.只有一棵C.一定有多棵D.可能不存在
(6)下列有关图遍历的说法中不正确的是()。
A.连通图的深度优先搜索是个递增过程
B.图的广度优先搜索中邻接点的寻找具有“先进先出”的特征
C.非连通图不能用深度优先搜索法
D.图的遍历要求每个顶点仅被访问一次
(7)无向图的邻接矩阵是一个()。
A.对称矩阵B零矩阵C.上三角矩阵D.对角矩阵
(8)下列说法中正确的是()。
A.一个具有n个顶点的无向完全图的边数为n(n-1)
B.连通图的生成树是该图的一个极大连通子图
C.图的广度优先搜索是一个递归过程
D.在非连通图的遍历过程中,每调用一次深度优先搜索算法都得到该图的一个连通分量
(9)如果从无向的任一顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是()。
A.完全图B.连通图C.有回路D.一棵树
问答题
(1)假设一棵完全图包含A、B,…,G七个结点,写出其邻接矩阵。
(2)假设一棵完全图包含A,B,C,D四个结点,画出其邻接表。
(3)设有一有向图为G=(V,E)。
其中,V={v0,v1,v2,v3},E={<
v1,v0>
<
v2,v1>
v3,v2>
v3,v1>
v0,v3>
}。
请画出该有向图。
(4)对于下面的带权有向图,写出其相邻矩阵表示,并画出其邻接表表示。
(5)对于下图,从顶点v0出发分别画出其深度优先生成树和广度优先生成树。
(6)对于图所示的网络,请分别用Prim算法和Kruskal算法构造该网络的最小生成树。
(7)画出以顶点V1为初始源点遍历所示的有向图所得到的深度优先遍历和广度优先遍历生成森林。
(8)试写出下图所示有向图的利用无前趋顶点优先算法求得的拓扑序列,设邻接表的边表结点中的邻接点序号是递增有序的。
习题八>
略
习题九>
填空题
(1)
采用二分法进行查找的查找表,应选择____________________方式的存储结构。
(2)
在各种查找法中,平均查找长度与结点个数n无关的查找方法是__________________。
(3)
在分块查找法中,首先查找__________________,然后再查找相应的_______________。
(4)
假设在有序表A[0……9]中进行二分查找,比较一次查找成功的结点数为____________,比较二次查找成功的结点数为______,比较三次查找成功的结点数为__________,比较四次查找成功的结点数为________,比较五次查找成功的结点数为___________,平均查找长度为____________________。
(5)
查找有序表R[0……11]中每个数据元素,假设查找在等概率情况下进行,则进行顺序查找的平均查找长度为_____________,进行二次查找的平均查找长度为____________。
(6)
假设在线性表R[0……59]中进行分块查找,共分10块,每块长度为6,若利用顺序查找法对索引表和子块进行查找,则查找每个元素的平均查找长度为_________________。
(7)
在散列存储中,装填因子a的值越大,存取数据元素时发生冲突的可能性就_____