1数据结构习题及参考答案.docx

上传人:b****6 文档编号:7987772 上传时间:2023-01-27 格式:DOCX 页数:31 大小:82.10KB
下载 相关 举报
1数据结构习题及参考答案.docx_第1页
第1页 / 共31页
1数据结构习题及参考答案.docx_第2页
第2页 / 共31页
1数据结构习题及参考答案.docx_第3页
第3页 / 共31页
1数据结构习题及参考答案.docx_第4页
第4页 / 共31页
1数据结构习题及参考答案.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

1数据结构习题及参考答案.docx

《1数据结构习题及参考答案.docx》由会员分享,可在线阅读,更多相关《1数据结构习题及参考答案.docx(31页珍藏版)》请在冰豆网上搜索。

1数据结构习题及参考答案.docx

1数据结构习题及参考答案

数据结构习题

习题2

2.1选择题

(1)线性表是具有n个__________的有限序列(n!

=0)。

A.表元素B.字符

C.数据元素D.数据项

(2)顺序表的存储结构是一种__________的存储结构。

A.随机存取B.顺序存取

C.索引存取D.HASH存取

(3)在一个长度为n的顺序表中,向第i个元素(1<=i<=n+1)之前插入一个新元素时,需要向后移动____________个元素。

A.n-iB.n-i+1

C.n-i-1D.i

(4)链表是一种采用____________存储结构存储的线性表。

A.顺序B链式

C.星式D.网状

(5)下面关于线性表的叙述错误的是_____________。

A.线性表采用顺序存储方式,必须占用一片连续的存储空间

B.线性表采用链式存储方式,不必占用一片连续的存储空间

C.线性表采用链式存储方式,便于插入和删除操作的实现

D.线性表采用顺序存储方式,便于插入和删除操作的实现

(6)设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用____________存储方式最节省运算时间。

A.单项链表B.单向循环链表

C.双向链表D.双向循环链表

(7)设指针q指向单链表中的结点A,指针p指向单链表中的结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B之间插入结点X的操作序列为____________。

A.s->next=p->next;p->next=-s;B.q->next=s;s->next=p;

C.p->next=s->next;s->next=p;D.p->next=s;s->next=q;

(8)设指针变量p指向单链表结点A,则删除结点A的后继结点B的操作为___________。

A.p->next=p->next->nextB.P=P->next

C.p=p->next->nextD.P->next=p

(9)在一个以h为头的单循环链表中,p指针指向链尾的条件是__________.

A.P->next=hB.p->next=NULL

C.p->next->next=hD.p->data=-1

(10)对于只在首尾两端进行插入操作的线性表,宜采用的存储结构为___________。

A.顺序表B.用头指针表示的单循环链表

C.单链表D.用尾指针表示的单循环链表

2.2填空题

(1)线性表是n个元素的_____________________________。

(2)线性表的存储结构有______________________________。

(3)设线性表中有n个数据元素,则在顺序存储结构上实现顺序查找的平均时间复杂度为___________________,在链式存储结构上实现顺序查找的平均时间复杂度为___________________。

(4)设顺序线性表中有n个数据元素,则第i个位置上插入一个数据元素需要移动表中___________个数据元素;删除第i个位置上的数据元素需要移动表中___________个元素。

(5)若频繁地对线性表进行插入与删除操作,该线性表应采用_________________存储结构。

(6)链式存储结构中的结点包含________________域和_________________域。

(7)在双链表中,每个结点有两个指针域,一个指向____________,另一个指向_______________。

(8)对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度为______________,在表尾插入时间的复杂度为_________________。

(9)设指针变量p指向单链表中的结点A,指针s指向被插入结点B,则在结点A的后面插入结点B的操作序列为_________________________________________________。

(10)设指针变量p指向单链表中的结点A,则删除结点A的后继结点(假设存在)的语句序列我为:

S=p->next;p->next=___________________;free(s);

习题2参考答案

2.1选择题

(1).C.

(2).B.(3).B.(4).B.5.D.6.B.7.B.8.A.9.A.10.D.

2.2.填空题

(1).有限序列

(2).顺序存储和链式存储

(3).O(n)O(n)

(4).n-i+1n-i

(5).链式

(6).数据指针

(7).前驱后继

(8).Ο

(1)Ο(n)

(9).s->next=p->next;p->next=s;

(10).s->next

习题三

3.1选择题

1)下列说法正确的是()

A.堆栈是在两端操作、先进后出的线性表

B.堆栈是在一端操作、先进先出的线性表

C.队列是在一端操作、先进先出的线性表

D.队列是在两端操作、先进先出的线性表

2)栈和队列的共同点是()

A.都是先进先出

B.都是先进先出

C.只允许在端点出插入和删除元素

D.没有共同点

3)以下数据结构中()是非线性结构。

A.队列

B.栈

C.线性表

D.二叉树

4)若一个栈的入栈序列是1,2,3,•••,n。

其输出序列为p1,p2,p3,•••pn,,,p1=n,则pi为()

A.I

B.N-i

C.N-i+1

D.不确定

5)当利用大小为N的一位素组顺序存储一个栈时,假定用top==N表示栈空,则向这个栈插入一个元素时,首先应执行()语句修改top指针。

A.top++

B.Top--

C.Top=0

D.Top

6)4个元素s栈的顺序是A,B,C,D,经运算,pop(s)后栈顶元素是()

A.AB.B

C.CD.D

7)一个栈的输入序列是a,b,c,d,e,则栈的不可能的输出序列是()

A.adcbaB.decba

C.dceabD.abcde

8)设输入序列是1,2,3,•••n,经过栈的作用后输出序列的第一个元素是n,则输出序列中第i个输出元素是()

A.n-i

B.n-1-i

C.n+1-i

D.不能确定

9)字符A、B、C、D依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成()个不同的字符串

A.15B.14

C.16D.21

10)递归函数f(n)=f(n-1)+n(n>1)的递归出口是()

A.f

(1)=0B.f

(1)=1

C.f(0)=1D.f(n)=n

11)设指针变量top指向当前链式栈的栈顶,则删除栈顶的元素的操作序列为()

A.top=top+1B.top=top-1

C.top->next=topD.top=top->next

12)中缀表达式A-(B+C/D)*E的后缀表达式是()

A.ABC+D/*E-B.ABCD/+E*-

C.AB-C+D/E*D.ABC-+D/E*

13)用front和rear分别表示顺序循环队列的队首和队尾指针,判断队空的条件是()

A.front+1==rearB.(rear+1)%maxsize==front

C.front==0D.front==rear

14)判定一个循环队列QU(最多元素为m0)为满队列的条件是()

A.QU->front==QU->rearB.QU->front!

=QU->rear

C.QU->front==(QU->rear+1)%m0D.QU->front!

=(QU->rear+1)%m0

15)设栈s和队列Q的初始状态为空。

元素E1,E2,E3,E4,E5和E6依次通过栈S,一个元素出栈后即进入队列Q。

若6个元素出列的顺序为E2,E4,E3,E6,E5和E1。

则栈S的容量至少应该是()

A.6B.4

C.3D.2

16)用链接式存储的队列。

在进行插入运算时,()

A.仅修改头指针

B.头、尾指针都要修改

C.仅修改尾指针

D.头、尾指针可能都要修改

17)若用一个大小为6的数组实现循环队列,且当前rear和front的值分别为0和3.当从队列中删除一个元素再加入两个元素后。

Rear和front的值分别为()

A.1和5B.2和4

C.4和2D.5和1

18)设顺序循环队列Q[0;M-1]的头指针分别为F和R,头指针F总是指向头元素的前一位置。

尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为()

A.R-F

B.F-R

C.(R-F+M)%M

D.(F-R+M)%M

19)设指针变量front便是链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点x,则入队列的操作序列为()

A.front->next=s;front=sB.s-next=rear;rear=s

C.rear=>next=s;rear=sD.s-next=front;rear=s

20)当利用大小为N的数组顺序存储的一个队列是,该队列的最大长度为()

A.n-2B.n-1

C.nD.n+1

3.2填空题

1)栈的插入和删除只能在栈顶栈顶进行,后进栈的元素必定先出栈,所以又把栈称为_______表;队列的插入和删除操作分别在队列的两端进行。

先进队列的元素必定先出队列,所以又把队列称为_____表。

2)后缀算式923+-102/-的值为_____中缀算式(3+4X)-2Y/3对应的后缀算式为____________________

3)下面程序段的功能实现数据X进栈,要求在下划线处填上真确的语句。

Typedefstruct{ints[100];inttop;}sqstack

Voidpush(sqstack&stack,intx)

{

If(stack.top==m-1)printf(“overflow”);

Else{__________,___________;}

}

4)设指针变量P指向双向循环链表中的结点X。

则删除结点X需要执行的语句序列为_________________,_____________________,(设结点中的两个指针域分别为llink和rlink).

5)设有一个顺序循环队列中有M个存储单元。

则该循环队列中最多能够存储M-1个队列元素;当前实际存储________个队列元素(设头指针F指向当前队头元素的前一个位置,尾指针指向当前队尾元素的位置)

6)设有一个顺序共享栈S[0;n-1],其中第一个栈项指针top1的初值为-1,第二个栈顶指针top2的初值为n,则判断共享栈满的条件是______________

7)设F和R分别表示顺序循环队列指针和尾指针,则判断该循环队列为空的条件为_______________

8)顺序循环队列判空的条件是(使用front,rear,n表示)_________

9)顺序循环队列判满的条件是(使用front,rear,n表示)_________

10)顺序循环队列MAXSIZE=N,最多可以存储____________元素

习题3参考答案

3.1.选择题

(1).D

(2).C(3).D(4).C(5).B(6).C(7).C(8).C(9).B(10).AB

(11).D(12).B(13).D(14).C(15).C(16).D(17).B(18).C(19).C(20).C

3.2.填空题

(1)FILO,FIFO

(2)-1,34X*+2Y*3/-

(3)stack.top++,stack.s[stack.top]=x

(4)p>llink->rlink=p->rlink,p->rlink->llink=p->rlink

(5)(R-F+M)%M

(6)top1+1=top2

(7)F==R

(8)front==rear

(9)front==(rear+1)%n

(10)N-1

习题4

4.1选择题

(1)如下陈述中正确的是______。

A.串是一种特殊的线性表B.串的长度必须大于零

C.串中的元素只能是字母D.空串就是空白串

(2)下列关于串的叙述中,正确的是______。

A.串长度是指串中不同字符的个数

B.串是n个字母有序数列

C.如果两个串含有相同的字符,则它们相等

D.只有当两个串的长度相等,并且各个对应位置的字符都相符是串才相等

(3)字符串的长度是指______。

A.串中不同字符的个数B.串中不同字母的个数

C.串中所含字符的个数D.串中不同数字的个数

(4)两个字符串长度相等的充要条件是______。

A.两个字符串长度相等B.两个字符串中对应位置上的字符相等

C.同时具备(A)和(B)D.以上答案都不对

(5)串是一种特殊的线性表,其特殊性体现在______。

A.可以顺序存储B.数据元素是一个字符

C.可以连接存储D.数据元素可以是多个字符

(6)设有两个串p和q,求q在p中首次出现的位置的运算称为______。

A.链接B.模式匹配C.求子串D.求串长

(7)设串sI=“ABCDEFG”,S2=“PQRST”,函数con(X,Y)返回X和Y串的连接串,subs(s,I,j)返回串s的从序号i的字符开始的j个字符组成的字串,len(s)返回串s的长度,则con(subs(sI,2,len(s2)),2的结果串是______。

A.BCDEFB.BCDEFG

C.BCPQRSTD.BCDEFEF

(8)函数substr(“DATASTRUCTURE”,5,9)的返回值为______。

A.“STRUCTURE”B.“DATA”

C.“ASTRUCTUR”D.“DATASTRUCTURE”

(9)常对数组进行的两种基本操作是______。

A.建立与删除B.索引与修改

C.查找与修改D.查找与索引

(10)设串S=“IAMATEACHER!

”,其长度是______。

A.16B.11C.14D.15

4.2填空题

(1)两个串相等的充要条件是__________________。

(2)空串是______,其长度为______。

(3)空格串是______,其长度是______。

(4)s=“Iamamen”长度为______。

(5)s1=“hello”,s2=“boy”,s1,s2连接后为______。

(6)s=“thisisthemainstring”,sub=“string”,strindex(s,sub)是(7)inta[10][10],已知a=1000,sizeof(int)=2,求a[3][3]地址__(8)设有两个串p和q,求q和p中首次出现的位置的运算称为______________。

(9)串的长度是指:

________________________。

(10)s=“xiaotech”所含字串的个数是________________。

习题4参考答案

4.1选择题:

(1).A

(2).D(3).C(4).C(5).B(6).B(7).D(8).A(9).B(10).D

4.2填空题:

(1)串长相等且对应位置字符相等

(2)不含任何元素的串,0

(3)所含字符均是空格,所含空格数

(4)10

(5)“helloboy”

(6)18

(7)1066

(8)由零个或多个任意字符组成的字符序列

(9)串中所含不同字符的个数

(10)36

第五章

一、选择题

1.树最适合用来表示()。

A.有序数据元素B.无序数据元素

C.元素间具有分层次关系的数据D.元素间无联系的数据

2.在m叉树中,度为0的结点称为()。

A.兄弟B.树叶C.树根D.分支结点

3.如果树的结点A有4个兄弟,而且B为A的双亲,则B的度为()。

A.3B.4C.5D.1

4.根据二叉树的定义可知二叉树共有()种不同的形态。

A.4B.5C.6D.7

5.由3个结点可以构造出()种不同形态的二叉树。

A.3B.4C.5D.6

6.具有20个结点的二叉树,其深度最多为()。

A.4B.5C.6D.20

7.高度为h的满二叉树的结点数是()个。

A.log2h+1B.2h+1C.2h-1D.2h-1

8.深度为5的二叉树至多有()个据点。

A.16B.32C.31D.10

9.设一颗二叉树共有50发业主据点(终端据点),则共有()个度为2的结点。

A.25B.49C.50D.51

10.一颗二叉树中根结点的编号为1,而且23好结点有左孩子但没有右孩子,则完全二叉树总共有()个结点。

A.24B.45C.46D.47

11.二叉树的第3层最少有()个结点。

A.0B.1C.2D.3

12.设n、m为一颗二叉树上的俩个结点,在中序遍历时,n在m之前的条件是()。

A.n在m的右方B.n是m祖先C.n在m的左方D.n是m子孙

13.某二叉树的先序序列和后序序列正好相反,则该二叉树可能是()的二叉树。

A.高度大于1的左单支B.高度大于1的右单支

C.最多只有一个结点D.既有左孩子又有右孩子

14..某二叉树的中序序列和后序序列正好相反,则该二叉树一定是()的二叉树。

A.空或只有一个结点B,高度等于其结点数

C.任一结点无左孩子D.任一结点无右孩子

15.有n个结点的二叉树链共有()个空指针域。

A.n-1B.nC.n+1D.n+2

二、填空题

1.一颗深度为5的二叉树,至少有1个叶子结点。

2.一颗完全二叉树采用顺序存储结构,每个结点占4字节,设编号为5的元素地址为

1016,且它有左孩子和右孩子,则该左孩子和右孩子的地址分别为1036和1040。

3.一颗完全二叉树采用顺序存储结构,若编号为i的元素左孩子,则该左孩子的编号为

2i。

4.一颗含有n(n>1)个结点的K叉树,当k=1时深度最大,此最大深度为n;

当k=n-1时深度最小,此最小深度为2。

5.深度为K的完全二叉树至少有2k-1个结点,至多有2k-1个结点。

6.已知一颗二叉树的先序遍历序列为EBADCFHGIKJ,中序遍历序列为ABCDEFGHIJK,

则该二叉树的后序遍历序列为ACDBGJKIHFE。

7.如果指针p指向一颗二叉树的一个结点,则判断p没有左孩子的逻辑表达式为p!

=NULL。

8.在由n个带权叶子结点构造出的所有二叉树中,带权路径长度最小的二叉树称为Huffman树。

9.在树的孩子兄弟表示法中,每个结点有俩个指针域,一个指向其第一个孩子;另一个指向

下一个兄弟。

10.树的先根遍历结果与其转换的相应二叉树的先序遍历结果相同;树的后根遍历结果与其转换的相应二叉树的中序遍历结果相同。

习题5参考答案

5.1选择

(1)C

(2)B(3)C(4)B(5)C(6)D(7)C(8)C(9)B(10)C

(11)B(12)C(13)C(14)C(15)C

5.2填空

(1)1

(2)1036;1040

(3)2i

(4)1;n;n-1;2

(5)2k-1;2k-1

(6)ACDBGJKIHFE

(7)p!

=NULL

(8)Huffman树

(9)其第一个孩子;下一个兄弟

(10)先序遍历;中序遍历

6.1选择题

(1)一个有8个顶点的有向图,所有顶点的入度之和与所有顶点的初读之和的差是()。

A.16B.4C.0D.2

(2)一个有n个顶点的连通无向图至少有()条边。

A.n-1B.nC.n+1D.n+2

(3)具有n个顶点的完全有向图的弧数为()。

A.n(n-1)/2B.n(n-1)C.n^2D.n^2-1

(4)一个n条边的连通无向图.其顶点的个数至多为()。

A.n-1B.nC.n+1D.n+2

(5)设无向图的顶点个数为n,则该图最多有()条边。

A.n-1B.n(n-1)/2C.n(n+1)/2D.0

(6)任何一个无向连通图的最小生成树()。

A.只有一颗B.有一颗或多颗C.一定有多颗D.可能不存在

(7)下列算法中,()算法用来球图中某顶点到其他所有顶点之间的最短路径。

A.DijkstraB.FloyedC.PrimD.Kruskal

(8)在一个无向图中,所有顶点的度数之和等于所有边数的()倍。

A.2B.3C.1D.1.5

(9)下面关于图的存储的叙述中正确的是()。

A.用邻接表法储存图,占用的存储空间大小只与图中边数有关,而与顶点个数无关B.用邻接表法储存图,占用的存储空间大小与图中边数喝顶点个数都有关

C.用邻接矩阵法储存图,占用的存储空间大小与图中边数喝顶点个数都有关

D.用邻接矩阵法储存图,占用的存储空间大小只与图中边数有关,而与顶点个数无关

(10)设有向无环图G中的有向边集合E={<1,2>,<2,3>,<3,4>,<1,4>},则下列属于该有向图G的一种拓扑排序序列的是()

A.1,2,3,4B.2,3,4,1

C.1,4,2,3D.1,2,4,3

(11)设有无向图G中的边集合E={(a,b)(a,e)(a,c)(b,e)(e,d)(d,f)(f,c)},则从顶点a出发进行深度优先遍历可以得到的一种顶点序列为()。

A.aedfcbB.acfebdC.aebcfdD.aedfbc

(12)连通图G中有n个顶点,G的生成树是()连通子图。

A.包含G的所有顶点B.包含G的所有边

C.不必包含G的所有顶点D.包含G的所有顶点喝所有边

(13)设某有向图中有n个顶点,则该有向图对应的邻接表中有()个表头结点。

A.n-1B.nC.n+1D.2n-1

(14)设无向图G中有n个顶点,e条边,则起对应的邻接中的表头结点喝边表结点的个数分别为()。

A.n,eB.e.nC.2n,eD.n,2e

(15)用邻接矩阵A表示有向图G的存储结构,则有向图G中顶点i的入度为()。

A.第i行非0元素的个数之和B.第i列非0元素的个数之和

C.第i行0元素的个数之和D.第i列0元素的个数之和

(16)用邻接矩阵A表示有向图G的存储结构,则有向图G中顶点i的出度为()。

A.第i行非0元素的个数之和B.第i列非0元素的个数之和

C.第i行0元素的个数之和D.第i列0元素的个数之和

(17)可以判断一个有向图中是否含有回路的方法为()。

A.广度优先搜索B.深度优先搜索C.拓扑排序D.求最短路径

6.2填空题

(1).一个连

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1