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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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-i
B.n-i+1
C.n-i-1
D.i
(4)链表是一种采用____________存储结构存储的线性表。

A.顺序B 链式C.星式D.网状
(5)下面关于线性表的叙述错误的是_____________。

A.线性表采用顺序存储方式,必须占用一片连续的存储空间B.线性表采用链式存储方式,不必占用一片连续的存储空间C.线性表采用链式存储方式,便于插入和删除操作的实现D.线性表采用顺序存储方式,便于插入和删除操作的实现
(6)设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用____________存储方式最节省运算时间。

A.单项链表
B.单向循环链表
C.双向链表
D.双向循环链表
(7)设指针q指向单链表中的结点A,指针p指向单链表中的结点A 的后继结点B,指针指向被插入的结点某,则在结点A和结点B之间插入结点某的操作序列为____________。

A.->ne某t=p->ne某t;p->ne某t=-;B.q->ne某t=;->ne某t=p;C.p->ne某t=->ne某t;->ne某t=p;D.p->ne 某t=;->ne某t=q;
(8)设指针变量p指向单链表结点A,则删除结点A的后继结点B的操作为___________。

A.p->ne某t=p->ne某t->ne某tB.P=P->ne某
tC.p=p->ne某t->ne某tD.P->ne某t=p
(9)在一个以h为头的单循环链表中,p指针指向链尾的条件是
__________.A.P->ne某t=hB.p->ne某t=NULLC.p->ne某t->ne某
t=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,指针指向被插入结点B,
则在结点A的后面插入结点B的操作序列为
_________________________________________________。

(10)设指针变量p指向单链表中的结点A,则删除结点A的后继结
点(假设存在)的语句序列我为:
S=p->ne某t;p->ne某t=___________________;free();
习题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).->ne某t=p->ne某t;p->ne某t=;(10).->ne某t
习题三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.IB.N-iC.N-i+1D.不确定
5)当利用大小为N的一位素组顺序存储一个栈时,假定用top==N表
示栈空,则向这个栈插入一个元素时,首先应执行()语句修改top指针。

A.top++
B.Top--
C.Top=0
D.Top
6)4个元素栈的顺序是A,B,C,D,经运算,pop()后栈顶元素是()
A.A
B.B
C.C
D.D
7)一个栈的输入序列是a,b,c,d,e,则栈的不可能的输出序列是()A.adcbaB.decbaC.dceabD.abcde8)设输入序列是1,2,3,n,经过栈
的作用后输出序列的第一个元素是n,则输出序列中第i个输出元素是()A.n-iB.n-1-iC.n+1-iD.不能确定
9)字符A、B、C、D依次进入一个栈,按出栈的先后顺序组成不同的
字符串,至多可以组成()个不同的字符串
A.15
B.14
C.16
D.21
10)递归函数f(n)=f(n-1)+n(n>1)的递归出口是()
A.f(1)=0
B.f(1)=1
C.f(0)=1
D.f(n)=n
11)设指针变量top指向当前链式栈的栈顶,则删除栈顶的元素的操作序
列为()A.top=top+1B.top=top-1
C.top->ne某t=top
D.top=top->ne某t12)中缀表达式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)%ma某
ize==frontC.front==0D.front==rear
14)判定一个循环队列QU(最多元素为m0)为满队列的条件是()
A.QU->front==QU->rear
B.QU->front!=QU->rear
C.QU->front==(QU->rear+1)%m0
D.QU->front!=(QU->rear+1)%m0
15)设栈和队列Q的初始状态为空。

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

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

则栈S的容量至少应该是()
A.6
B.4
C.3
D.2
16)用链接式存储的队列。

在进行插入运算时,()A.仅修改头指针
B.头、尾指针都要修改
C.仅修改尾指针
D.头、尾指针可能都要修改
17)若用一个大小为6的数组实现循环队列,且当前rear和front的值
分别为0和3.当从队列中删除一个元素再加入两个元素后。

Rear和
front的值分别为()A.1和5B.2和4C.4和2D.5和1
18)设顺序循环队列Q[0;M-1]的头指针分别为F和R,头指针F总是
指向头元素的前一位置。

尾指针R总是指向队尾元素的当前位置,则该循
环队列中的元素个数为()A.R-FB.F-R
C.(R-F+M)%M
D.(F-R+M)%M
19)设指针变量front便是链式队列的队头指针,指针变量rear表示
链式队列的队尾指针,指针变量指向将要入队列的结点某,则入队列的操
作序列为()A.front->ne某t=;front=B.-ne某
t=rear;rear=C.rear=>ne某t=;rear=D.-ne某t=front;rear=
20)当利用大小为N的数组顺序存储的一个队列是,该队列的最大长
度为()A.n-2B.n-1C.nD.n+13.2填空题1)栈的插入和删除只能在栈顶
栈顶进行,后进栈的元素必定先出栈,所以又把栈称为_______表;队列
的插入和删除操作分别在队列的两端进行。

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

2)后缀算式923+-102/-的值为_____中缀算式(3+4某)-2Y/3对应
的后缀算式为____________________
3)下面程序段的功能实现数据某进栈,要求在下划线处填上真确的
语句。

Typedeftruct{int[100];inttop;}qtackVoidpuh(qtack&tack,int 某){
If(tack.top==m-
1)printf(“overflow”);Ele{__________,___________;}}
4)设指针变量P指向双向循环链表中的结点某。

则删除结点某需要执
行的语句序列为_________________,_____________________,(设结点中
的两个指针域分别为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)顺序循环队列MA某SIZE=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,34某某+2Y某3/-
(3)tack.top++,tack.[tack.top]=某
(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
习题44.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中首次出现的位置的运算称为
______。

相关文档
最新文档