您好,欢迎访问三七文档
一选择题1.对于栈操作数据的原则是(b)。A.先进先出B.后进先出C.后进后出D.不分顺序2.在作进栈运算时,应先判别栈是否(①b),在作退栈运算时应先判别栈是否(②a)。当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为(c③)。为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的内存空间时,应将两栈的(④d)分别设在这片内存空间的两端,这样,当(c⑤)时,才产生上溢。①,②:A.空B.满C.上溢D.下溢③:A.n-1B.nC.n+1D.n/2④:A.长度B.深度C.栈顶D.栈底⑤:A.两个栈的栈顶同时到达栈空间的中心点.B.其中一个栈的栈顶到达栈空间的中心点.C.两个栈的栈顶在栈空间的某一位置相遇.D.两个栈均不空,且一个栈的栈顶到达另一个栈的栈底.3.一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i(1=i=n)个元素是(b)。A.不确定B.n-i+1C.iD.n-i4.若一个栈的输入序列为1,2,3,…,n,输出序列的第一个元素是i,则第j个输出元素是(d)。A.i-j-1B.i-jC.j-i+1D.不确定的5.设栈的输入序列是1,2,3,4,则(d)不可能是其出栈序列。A.1,2,4,3,B.2,1,3,4,C.1,4,3,2,D.4,3,1,2,E.3,2,1,4,6.一个栈的输入序列为12345,则下列序列中不可能是栈的输出序列的是(b)。A.23415B.54132C.23145D.154327.设一个栈的输入序列是1,2,3,4,5,则下列序列中,是栈的合法输出序列的是(d)。A.51234B.45132C.43125D.321548.某堆栈的输入序列为a,b,c,d,下面的四个序列中,不可能是它的输出序列的是(d)。A.a,c,b,dB.b,c,d,aC.c,d,b,aD.d,c,a,b9.设abcdef以所给的次序进栈,若在进栈操作时,允许退栈操作,则下面得不到的序列为(d)。A.fedcbaB.bcafedC.dcefbaD.cabdef10.设有三个元素X,Y,Z顺序进栈(进的过程中允许出栈),下列得不到的出栈排列是(c)。A.XYZB.YZXC.ZXYD.ZYX11.输入序列为ABC,可以变为CBA时,经过的栈操作为(b)A.push,pop,push,pop,push,popB.push,push,push,pop,pop,popC.push,push,pop,pop,push,popD.push,pop,push,push,pop,pop12.若一个栈以向量V[1..n]存储,初始栈顶指针top为n+1,则下面x进栈的正确操作是(c)。A.top:=top+1;V[top]:=xB.V[top]:=x;top:=top+1C.top:=top-1;V[top]:=xD.V[top]:=x;top:=top-113.若栈采用顺序存储方式存储,现两栈共享空间V[1..m],top[i]代表第i个栈(i=1,2)栈顶,栈1的底在v[1],栈2的底在V[m],则栈满的条件是(b)。A.|top[2]-top[1]|=0B.top[1]+1=top[2]C.top[1]+top[2]=mD.top[1]=top[2]14.栈在(d)中应用。A.递归调用B.子程序调用C.表达式求值D.A,B,C15.一个递归算法必须包括(b)。A.递归部分B.终止条件和递归部分C.迭代部分D.终止条件和迭代部分16.执行完下列语句段后,i值为:(b)intf(intx){return((x0)?x*f(x-1):2);}inti;i=f(f(1));A.2B.4C.8D.无限递归17.表达式3*2^(4+2*2-6*3)-5求值过程中当扫描到6时,对象栈和算符栈为(d),其中^为乘幂。A.3,2,4,1,1;(*^(+*-B.3,2,8;(*^-C.3,2,4,2,2;(*^(-D.3,2,8;(*^(-//(第一个‘(’是栈底,相当于#作用)18.用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时(d)。A.仅修改队头指针B.仅修改队尾指针C.队头、队尾指针都要修改D.队头,队尾指针都可能要修改19.递归过程或函数调用时,处理参数及返回地址,要用一种称为(c)的数据结构。A.队列B.多维数组C.栈D.线性表20.假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为(a)。A.(rear-front+m)%mB.rear-front+1C.(front-rear+m)%mD.(rear-front)%m21.循环队列存储在数组A[0..m]中,则入队时的操作为(d)。A.rear=rear+1B.rear=(rear+1)mod(m-1)C.rear=(rear+1)modmD.rear=(rear+1)mod(m+1)22.若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?(b)A.1和5B.2和4C.4和2D.5和123.最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是(b)。A.(rear+1)MODn=frontB.rear=frontC.rear+1=frontD.(rear-l)MODn=front24.栈和队列的共同点是(c)。A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点25.栈的特点是(b①),队列的特点是(a②),栈和队列都是(c③)。若进栈序列为1,2,3,4则(c④)不可能是一个出栈序列(不一定全部进栈后再出栈);若进队列的序列为1,2,3,4则(e⑤)是一个出队列序列。①,②:A.先进先出B.后进先出C.进优于出D.出优于进③:A.顺序存储的线性结构B.链式存储的线性结构C.限制存取点的线性结构D.限制存取点的非线性结构④,⑤:A.3,2,1,4B.3,2,4,1C.4,2,3,1D.4,3,2,1E.1,2,3,4F.1,3,2,426.栈和队都是(c)A.顺序存储的线性结构B.链式存储的非线性结构C.限制存取点的线性结构D.限制存取点的非线性结构27.设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1则栈S的容量至少应该是(c)。//不考虑栈顶指向空的情况A.6B.4C.3D.228.依次读入数据元素序列{a,b,c,d,e,f,g}进栈,每进一个元素,机器可要求下一个元素进栈或弹栈,如此进行,则栈空时弹出的元素构成的序列是以下哪些序列?adA.{d,e,c,f,b,g,a}B.{f,e,g,d,a,c,b}C.{e,f,d,g,b,c,a}D.{c,d,b,e,f,a,g}二判断题1.消除递归不一定需要使用栈,此说法(T)2.栈是实现过程和函数等子程序所必需的结构。(T)3.两个栈共用静态存储空间,对头使用也存在空间溢出问题。(T)4.两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。(T)5.即使对不含相同元素的同一输入序列进行两组不同的合法的入栈和出栈组合操作,所得的输出序列也一定相同。(F)6.若输入序列为1,2,3,4,5,6,则通过一个栈可以输出序列3,2,5,6,4,1.(T)7.若输入序列为1,2,3,4,5,6,则通过一个栈可以输出序列1,5,4,6,2,3。(F)8.任何一个递归过程都可以转换成非递归过程。(T)9.只有那种使用了局部变量的递归过程在转换成非递归过程时才必须使用栈。(F)10.循环队列也存在空间溢出问题。(T)三填空题1.栈是__限制仅在表尾进行存取_____的线性表,其运算遵循__先进后出____的原则。2.一个栈的输入序列是:1,2,3则不可能的栈输出序列是__312_____。3.设有一个空栈,栈顶指针为1000H(十六进制),现有输入序列为1,2,3,4,5,经过PUSH,PUSH,POP,PUSH,POP,PUSH,PUSH之后,输出序列是23_______,而栈顶指针值是____100C___H。设栈为顺序栈,每个元素占4个字节。4.在作进栈运算时应先判别栈是否_满_;在作退栈运算时应先判别栈是否空_;当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为_n+1_。为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的空间时,应将两栈的_栈底_分别设在内存空间的两端,这样只有当_某一个栈的栈顶大于另一个栈的栈顶_时才产生溢出。5.多个栈共存时,最好用___链式____作为存储结构。6.循环队列的引入,目的是为了克服____队满时再进队会发生溢出(虚假溢出)___。7.区分循环队列的满与空,只有两种方法,它们是__做标记____和_牺牲一个存储单元_____。8.用S表示入栈操作,X表示出栈操作,若元素入栈的顺序为1234,为了得到1342出栈顺序,相应的S和X的操作串为___SXSSXSXX____。9.有5个元素,其入栈次序为:A,B,C,D,E,在各种可能的出栈次序中,以元素C,D最先出栈(即C第一个且D第二个出栈)的次序有哪几个__CDBAE,CDEBA,CDBEA___________________________.10.设输入序列为2,3,4,5,6,利用一个栈能得到序列2,5,3,4,6吗?栈可以用单链表实现吗?得不到该序列,可以
本文标题:栈习题
链接地址:https://www.777doc.com/doc-3074683 .html