数据结构各章强化练习题.docx
- 文档编号:10565289
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:12
- 大小:20.90KB
数据结构各章强化练习题.docx
《数据结构各章强化练习题.docx》由会员分享,可在线阅读,更多相关《数据结构各章强化练习题.docx(12页珍藏版)》请在冰豆网上搜索。
数据结构各章强化练习题
数据结构各章强化练习题
线性表
一、选择题
1.下述哪一条是顺序存储结构的优点?
()
A.存储密度大B.插入运算方便
C.删除运算方便D.可方便地用于各种逻辑结构的存储表示
2.下面关于线性表的叙述中,错误的是哪一个?
()
A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链接存储,不必占用一片连续的存储单元。
D.线性表采用链接存储,便于插入和删除操作。
3.线性表是具有n个()的有限序列(n>0)。
A.表元素B.字符C.数据元素D.数据项
4.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
A.顺序表B.双链表
C.带头结点的双循环链表D.单循环链表
5.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。
A.单链表B.仅有头指针的单循环链表
C.双链表D.仅有尾指针的单循环链表
6..链表不具有的特点是()
A.插入、删除不需要移动元素B.可随机访问任一元素
C.不必事先估计存储空间D.所需空间与线性长度成正比
二、判断
1.链表中的头结点仅起到标识的作用。
2.顺序存储结构的主要缺点是不利于插入或删除操作。
3.线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。
4.顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。
5.对任何数据结构链式存储结构一定优于顺序存储结构。
6.顺序存储方式只能用于存储线性结构。
7.取线性表的第i个元素的时间同i的大小有关.
8.循环链表不是线性表.
9.线性表只能用顺序存储结构实现。
10.线性表就是顺序存储的表。
11.为了很方便的插入和删除数据,可以使用双向链表存放数据。
12.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
13.链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺序存储结构中效率高。
()
栈习题
一选择题
1.对于栈操作数据的原则是()。
A.先进先出B.后进先出C.后进后出D.不分顺序
2.有六个元素6,5,4,3,2,1的顺序进栈,问下列哪一个不是合法的出栈序列?
()
A.543612B.453126
C.346521D.234156
3.栈在()中应用。
A.递归调用B.子程序调用
C.表达式求值D.A,B,C
4、用链接方式存储的队列,在进行删除运算时()。
A.仅修改头指针B.仅修改尾指针
C.头、尾指针都要修改D.头、尾指针可能都要修改
5、循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是()。
A.(rear-front+m)%mB.rear-front+1C.rear-front-1D.rear-front
6.循环队列存储在数组A[0..m]中,则入队时的操作为()。
A.rear=rear+1B.rear=(rear+1)mod(m-1)
C.rear=(rear+1)modmD.rear=(rear+1)mod(m+1)
7.若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?
()
A.1和5B.2和4C.4和2D.5和1
8.最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是()。
A.(rear+1)MODn=frontB.rear=front
C.rear+1=frontD.(rear-l)MODn=front
9.栈和队列的共同点是()。
A.都是先进先出B.都是先进后出
C.只允许在端点处插入和删除元素D.没有共同点
10.栈和队都是()
A.顺序存储的线性结构B.链式存储的非线性结构
C.限制存取点的线性结构D.限制存取点的非线性结构
11.设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1则栈S的容量至少应该是()。
A.6B.4C.3D.2
12.用单链表表示的链式队列的队头在链表的()位置。
A.链头B.链尾C.链中
二、.名词解释:
栈
队列
循环队列
数组和广义表
一选择题
1.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为()。
A.13B.33C.18D.40
2.设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为()。
A.BA+141B.BA+180
C.BA+222D.BA+225
3.假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=()。
A.808B.818C.1010D.1020
4.数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5,5]的地址是()。
A.1175B.1180C.1205D.1210
5.对稀疏矩阵进行压缩存储目的是()。
A.便于进行矩阵运算B.便于输入和输出
C.节省存储空间D.降低运算的时间复杂度
6.已知广义表L=((x,y,z),a,(u,t,w)),从L表中取出原子项t的运算是()。
A.head(tail(tail(L)))B.tail(head(head(tail(L))))
C.head(tail(head(tail(L))))D.head(tail(head(tail(tail(L)))))
7.已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是()。
A.head(tail(LS))B.tail(head(LS))
C.head(tail(head(tail(LS)))D.head(tail(tail(head(LS))))
8.广义表A=(a,b,(c,d),(e,(f,g))),则下面式子的值为()。
Head(Tail(Head(Tail(Tail(A)))))
A.(g)B.(d)C.cD.d
9.已知广义表:
A=(a,b),B=(A,A),C=(a,(b,A),B),求下列运算的结果:
tail(head(tail(C)))=()。
A.(a)B.AC.aD.(b)
10.广义表运算式Tail(((a,b),(c,d)))的操作结果是()。
A.(c,d)B.c,dC.((c,d))D.d
11.广义表L=(a,(b,c)),进行Tail(L)操作后的结果为()。
A.cB.b,cC.(b,c)D.((b,c))
12.广义表((a,b,c,d))的表头是(),表尾是()。
A.aB.()C.(a,b,c,d)D.(b,c,d)
13.广义表(a,(b,c),d,e)的表头为()。
A.aB.a,(b,c)C.(a,(b,c))D.(a)
14.设广义表L=((a,b,c)),则L的长度和深度分别为()。
A.1和1B.1和3C.1和2D.2和3
15.下面说法不正确的是()。
A.广义表的表头总是一个广义表B.广义表的表尾总是一个广义表
C.广义表难以用顺序存储结构D.广义表可以是一个多层次的结构
树和二叉树
1、设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1则T中的叶子数为()
A.5B.6C.7D.8
2.在下述结论中,正确的是()
①只有一个结点的二叉树的度为0;②二叉树的度为2;③二叉树的左右子树可任意交换;④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。
A.①②③B.②③④C.②④D.①④
3.设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F中第一棵树的结点个数是()
A.m-nB.m-n-1C.n+1D.条件不足,无法确定
4.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()
A.9B.11C.15D.不确定
5.在一棵三元树中度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为0的结点数为()个
A.4B.5C.6D.7
6.设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。
与森林F对应的二叉树根结点的右子树上的结点个数是()。
A.M1B.M1+M2C.M3D.M2+M3
7.具有10个叶结点的二叉树中有()个度为2的结点,
A.8B.9C.10D.ll
8.设给定权值总数有n个,其哈夫曼树的结点总数为()
A.不确定B.2nC.2n+1D.2n-1
9.有n个叶子的哈夫曼树的结点总数为()。
A.不确定B.2nC.2n+1D.2n-1
10.一棵二叉树高度为h,所有结点的度或为0,或为2,则这棵二叉树最少有()结点
A.2hB.2h-1C.2h+1D.h+1
11.对于有n个结点的二叉树,其高度为()
A.nlog2nB.log2nC.⎣log2n⎦|+1D.不确定
12.一棵具有n个结点的完全二叉树的树高度(深度)是()
A.⎣logn⎦+1B.logn+1C.⎣logn⎦D.logn-1
13.深度为h的满m叉树的第k层有()个结点。
(1= A.mk-1B.mk-1C.mh-1D.mh-1 14.在一棵高度为k的满二叉树中,结点总数为() A.2k-1B.2kC.2k-1D.⎣log2k⎦+1 15.高度为K的二叉树最大的结点数为()。 A.2kB.2k-1C.2k-1D.2k-1-1 16.一棵树高为K的完全二叉树至少有()个结点 A.2k–1B.2k-1–1C.2k-1D.2k 17.对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,可采用()次序的遍历实现编号。 A.先序B.中序C.后序 D.从根开始按层次遍历 18.树的后根遍历序列等同于该树对应的二叉树的(). A.先序序列B.中序序列C.后序序列 19.若二叉树采用二叉链表存储结构,要交换其所有分支结点左、右子树的位置,利用()遍历方法最合适。 A.前序B.中序C.后序D.按层次 20.在下列存储形式中,哪一个不是树的存储形式? () A.双亲表示法B.孩子链表表示法 C.孩子兄弟表示法D.顺序存储表示法 21.一棵二叉树的前序遍历序列为ABCDEFG,它的中序遍历序列可能是() A.CABDEFGB.ABCDEFGC.DACEFBGD.ADCFEG 22.已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为()。 A.CBEFDAB.FEDCBAC.CBEDFAD.不定 23.已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历是()。 A.acbedB.decabC.deabcD.cedba 24.某二叉树中序序列为A,B,C,D,E,F,G,后序序列为B,D,C,A,F,G,E则前序序列是: A.E,G,F,A,C,D,BB.E,A,C,B,D,G,F C.E,A,G,C,F,B,DD.上面的都不对 25.上题的二叉树对应的森林包括多少棵树() A.lB.2C.3D.概念上是错误的 26.二叉树的先序遍历和中序遍历如下: 先序遍历: EFHIGJK;中序遍历: HFIEJKG。 该二叉树根的右子树的根是: A、EB、F C、G D、H 27.将一棵树t转换为孩子—兄弟链表表示的二叉树h,则t的后根序遍历是h的 A.前序遍历B.中序遍历C.后序遍历() 二、填空题 1.二叉树由_ (1)__,__ (2)_,_(3)__三个基本单元组成。 2.树在计算机内的表示方式有_ (1)__,_ (2)__,_(3)__。 3.在二叉树中,指针p所指结点为叶子结点的条件是______。 4.已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树有______个叶子结点。 5.深度为k的完全二叉树至少有___ (1)____个结点,至多有___ (2)____个结点。 XX文库-让每个人平等地提升自我6.深度为H的完全二叉树至少有_ (1)__个结点;至多有_ (2)__个结点;H和结点总数N之间的关系是(3)__。 7.已知一棵二叉树的前序序列为abdecfhg,中序序列为dbeahfcg,则该二叉树的根为_ (1)__,左子树中有_ (2)__,右子树中有_(3)__。 8、线索二元树的左线索指向其______,右线索指向其______。 9.哈夫曼树是______。 10.若以{4,5,6,7,8}作为叶子结点的权值构造哈夫曼树,则其带权路径长度是______。 11.有数据WG={7,19,2,6,32,3,21,10},则所建Huffman树的树高是_ (1)__,带权路径长度WPL为_ (2)__。 12.有一份电文中共使用6个字符: a,b,c,d,e,f,它们的出现频率依次为2,3,4,7,8,9,试构造一棵哈夫曼树,则其加权路径长度WPL为_ (1)__,字符c的编码是_ (2)__。 13.设n0为哈夫曼树的叶子结点数目,则该哈夫曼树共有______个结点。 图 1.设无向图的顶点个数为n,则该图最多有()条边。 A.n-1B.n(n-1)/2C.n(n+1)/2D.0 2.一个n个顶点的连通无向图,其边的个数至少为()。 A.n-1B.nC.n+1D.nlogn; 3.要连通具有n个顶点的有向图,至少需要()条边。 A.n-lB.nC.n+lD.2n 4.n个结点的完全有向图含有边的数目()。 A.n*nB.n(n+1)C.n/2D.n*(n-l) 二、填空题 1.判断一个无向图是一棵树的条件是______。 2.有向图G的强连通分量是指_____。 3.一个连通图的______是一个极小连通子图。 4.具有10个顶点的无向图,边的总数最多为______。 5.若用n表示图中顶点数目,则有_______条边的无向图成为完全图。 6.N个顶点的连通图的生成树含有_____条边。 7.构造n个结点的强连通图,至少有______条弧。 8.在图G的邻接表表示中,每个顶点邻接表中所含的结点数,对于无向图来说等于该顶点的______;对于有向图来说等于该顶点的______。 9.在有向图的邻接矩阵表示中,计算第I个顶点入度的方法是______。 10.对于一个具有n个顶点e条边的无向图的邻接表的表示,则表头向量大小为______,邻接表的边结点个数为_____。 11.为了实现图的广度优先搜索,除了一个标志数组标志已访问的图的结点外,还需_____存放被访问的结点以实现遍历。 12.求图的最小生成树有两种算法,______算法适合于求稀疏图的最小生成树。 13.Prim(普里姆)算法适用于求______的网的最小生成树;kruskal(克鲁斯卡尔)算法适用于求______的网的最小生成树。 14.克鲁斯卡尔算法的时间复杂度为______,它对_____图较为适合。 三、已知一个图的顶点集V和边集H分别为: 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}; 1.请画出该图,并分别请画出邻接矩阵和邻接表存储结构图示。 2.从0出发得到的DFS序列及DFS生成树。 3.从0出发得到的BFS序列及BFS生成树。 4.按照克鲁斯卡尔算法得到最小生成树,拭写出在最小生成树中依次得到的各条边。 查找和排序 一、.假定二个大根堆为(56,38,42,30,25,40,35,20),则依次从中删除两个元素后得到的堆为______________。 二、假定一组记录的排序码为(46,79,56,38,40,80,36,40,75,66,84,24),请回答下列问题 1、写出希尔排序的三趟排序过程,增量分别为: 5,3,1; 2、写出第一趟快速排序的过程。 三、设散列表的长度m=13;散列函数为H(K)=Kmodm,给定的关键码序列为19,14,23,01,68,20,84,27,55,11,试画出用线性探查法解决冲突时所构造的散列表。 并求出在等概率的情况下,这种方法的搜索成功时的平均搜索长度 和搜索不成功时的平均搜索长度。 搜索成功时的平均搜索长度: ASLsucc= 搜索不成功时的平均搜索长度: ASLsucc= 四、已知一组元素为(46,25,78,62,12,37,70,29),试画出按元素排列次序插入生成的一棵二叉搜索树。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 各章 强化 练习题