数据结构第三章栈和队列习题及答案.doc

上传人:wj 文档编号:2141355 上传时间:2023-05-02 格式:DOC 页数:3 大小:22.50KB
下载 相关 举报
数据结构第三章栈和队列习题及答案.doc_第1页
第1页 / 共3页
数据结构第三章栈和队列习题及答案.doc_第2页
第2页 / 共3页
数据结构第三章栈和队列习题及答案.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构第三章栈和队列习题及答案.doc

《数据结构第三章栈和队列习题及答案.doc》由会员分享,可在线阅读,更多相关《数据结构第三章栈和队列习题及答案.doc(3页珍藏版)》请在冰点文库上搜索。

数据结构第三章栈和队列习题及答案.doc

习题三栈和队列

一单项选择题

1.在作进栈运算时,应先判别栈是否(①),在作退栈运算时应先判别栈是否(②)。

当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为(③)。

①,②:

A.空B.满C.上溢D.下溢

③:

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

2.若已知一个栈的进栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,...,pn,若p1=3,则p2为()。

A可能是2B一定是2C可能是1D一定是1

3.有六个元素6,5,4,3,2,1的顺序进栈,问下列哪一个不是合法的出栈序列?

()

A.543612B.453126C.346521D.234156

4.设有一顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素出栈的顺序是s2,s3,s4,s6,s5,s1,则栈的容量至少应该是()

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

5.若栈采用顺序存储方式存储,现两栈共享空间V[1..m],top[i]代表第i个栈(i=1,2)栈顶,栈1的底在v[1],栈2的底在V[m],则栈满的条件是()。

A.|top[2]-top[1]|=0B.top[1]+1=top[2]

C.top[1]+top[2]=mD.top[1]=top[2]

6.执行完下列语句段后,i值为:

()

intf(intx)

{return((x>0)?

x*f(x-1):

2);}

inti;

i=f(f

(1));

A.2B.4C.8D.无限递归

7.表达式3*2^(4+2*2-6*3)-5求值过程中当扫描到6时,对象栈和算符栈为(),其中^为乘幂。

A.3,2,4,1,1;(*^(+*-B.3,2,8;(*^-

C.3,2,4,2,2;(*^(-D.3,2,8;(*^(-

8.用链接方式存储的队列,在进行删除运算时()。

A.仅修改头指针B.仅修改尾指针

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

9.递归过程或函数调用时,处理参数及返回地址,要用一种称为()的数据结构。

A.队列B.多维数组C.栈D.线性表

10.设C语言数组Data[m+1]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为()

A.front=front+1B.front=(front+1)%m

C.rear=(rear+1)%(m+1)D.front=(front+1)%(m+1)

11.循环队列的队满条件为()

A.(sq.rear+1)%maxsize==(sq.front+1)%maxsize;

B.(sq.front+1)%maxsize==sq.rear

C.(sq.rear+1)%maxsize==sq.front

D.sq.rear==sq.front

12.栈和队列的共同点是()。

A.都是先进先出B.都是先进后出

C.只允许在端点处插入和删除元素D.没有共同点

二、填空题

1.栈是_______的线性表,其运算遵循_______的原则。

2.一个栈的输入序列是:

1,2,3则不可能的栈输出序列是_______。

3.用S表示入栈操作,X表示出栈操作,若元素入栈的顺序为1234,为了得到1342出栈顺序,相应的S和X的操作串为_______。

4.循环队列的引入,目的是为了克服_______。

5.队列是限制插入只能在表的一端,而删除在表的另一端进行的线性表,其特点是_______。

6.已知链队列的头尾指针分别是f和r,则将值x入队的操作序列是_______。

7.表达式求值是_______应用的一个典型例子。

8.循环队列用数组A[0..m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列的元素个数是_______。

9.以下运算实现在链栈上的初始化,请在________________处用请适当句子予以填充。

VoidInitStacl(LstackTp*ls){________________;}

10.`以下运算实现在链栈上的进栈,请在处用请适当句子予以填充。

VoidPush(LStackTp*ls,DataTypex)

{LstackTp*p;p=malloc(sizeof(LstackTp));

________________;

p->next=ls;

________________;

}

11.以下运算实现在链栈上的退栈,请在________________处用请适当句子予以填充。

IntPop(LstackTp*ls,DataType*x)

{LstackTp*p;

if(ls!

=NULL)

{p=ls;

*x=________________;

ls=ls->next;

________________;

return

(1);

}elsereturn(0);

}

12.以下运算实现在链队上的入队列,请在________________处用适当句子予以填充。

VoidEnQueue(QueptrTp*lq,DataTypex)

{LqueueTp*p;

p=(LqueueTp*)malloc(sizeof(LqueueTp));

________________=x;

p->next=NULL;

(lq->rear)->next=________________;

________________;

}

第3章栈和队列

一单项选择题

1.BAB

2.A

3.C

4.B

5.B

6.B

7.D

8.D

9.C

10.D

11.C

12.C

二、填空题

1.操作受限(或限定仅在表尾进行插入和删除操作)后进先出

2.312

3.S×SS×S××

4.假溢出时大量移动数据元素

5.先进先出

6.s=(LinkedList)malloc(sizeof(LNode));s->data=x;s->next=r->next;r->next=s;r=s;

7.栈

8.(rear-front+m)%m;

9.ls=NULL

10.p->data=x,ls=p

11.p->data,free(p)

12.p->data,p,lq->rear=p

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2