数据结构第三章栈和队列习题及答案.doc
- 文档编号:2141355
- 上传时间:2023-05-02
- 格式:DOC
- 页数:3
- 大小:22.50KB
数据结构第三章栈和队列习题及答案.doc
《数据结构第三章栈和队列习题及答案.doc》由会员分享,可在线阅读,更多相关《数据结构第三章栈和队列习题及答案.doc(3页珍藏版)》请在冰点文库上搜索。
习题三栈和队列
一单项选择题
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 第三 队列 习题 答案