您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 数据结构练习第三章栈和队列
1数据结构练习第三章栈和队列一、选择题1.栈和队列的共同特点是()。A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.向顺序栈中压入新元素时,应当()。A.先移动栈顶指针,再存入元素B.先存入元素,再移动栈顶指针C.先后次序无关紧要D.同时进行3.允许对队列进行的操作有()。A.对队列中的元素排序B.取出最近进队的元素C.在队头元素之前插入元素D.删除队头元素4.用链接方式存储的队列,在进行插入运算时().A.仅修改头指针B.头、尾指针都要修改C.仅修改尾指针D.头、尾指针可能都要修改5.设用链表作为栈的存储结构则退栈操作()。A.必须判别栈是否为满B.必须判别栈是否为空C.判别栈元素的类型D.对栈不作任何判别6.设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点X,则入队列的操作序列为()。A.front-next=s;front=s;B.s-next=rear;rear=s;C.rear-next=s;rear=s;D.s-next=front;front=s;7.设指针变量top指向当前链式栈的栈顶,则删除栈顶元素的操作序列为()。A.top=top+1;B.top=top-1;C.top-next=top;D.top=top-next;8.队列是一种()的线性表。A.先进先出B.先进后出C.只能插入D.只能删除9.设输入序列1、2、3、…、n经过栈作用后,输出序列中的第一个元素是n,则输出序列中的第i个输出元素是()。A.n-iB.n-1-iC.n+l-iD.不能确定10.设输入序列为1、2、3、4、5、6,则通过栈的作用后可以得到的输出序列为()。A.5,3,4,6,1,2B.3,2,5,6,4,1C.3,1,2,5,4,6D.1,5,4,6,2,311.队列的删除操作是在()进行。A.队首B.队尾C.队前D.队后12.当利用大小为N的数组顺序存储一个栈时,假定用top==N表示栈空,则退栈时,用()语句修改top指针。A.top++;B.top=0;C.top--;D.top=N;13.队列的插入操作是在()进行。2A.队首B.队尾C.队前D.队后14.若已有一个栈,输入序列为A,B,C,D,E,那么下面哪种序列不可能得到?()A.ABCDEB.EDCBAC.BAEDCD.ECDBA(d)注意:入栈和出栈操作可以交替进行,因此就可能有多种输出序列了。15.栈和队列共同具有的特点是()A.都是先进后出B.都是先进先出C.只允许在端点进行操作运算D.既能先进先出,也能先进后出16.若用一个有6个单元的数组来实现循环队列,rear和front的初值分别为0和3。则从队列中删除一个元素,再添加两个元素后,rear和front的值分别为()A.1和5B.2和4C.4和2D.5和117.一个栈的入栈序列是a,b,c,d,e,则栈的输出序列不可能...是()A.dceabB.decbaC.edcbaD.abcde18.元素大小为1个单元,容量为n个单元的非空顺序栈中,以地址高端为栈底,以top作为栈顶指针,则出栈处理后,top的值应修改为()A.top=topB.top=n-1C.top=top-1D.top=top+119.设有一个栈,按A、B、C、D的顺序进栈,则可能为出栈序列的是()A.DCBAB.CDABC.DBACD.DCAB20.在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top为栈顶指针,则当做出栈处理时,top变化为()A.top++B.top--C.top不变D.top=021.关于栈和队列的说法中正确的是()A.栈和队列都是线性结构B.栈是线性结构,队列不是线性结构C.栈不是线性结构,队列是线性结构D.栈和队列都不是线性结构22.设一个栈的输入序列是a,b,c,d,则所得到的输出序列(输入过程中允许出栈)不可能出现的是()A.a,b,c,dB.a,b,d,cC.d,c,b,aD.c,d,a,b23.在具有m个单元的循环队列中,队头指针为front,队尾指针为rear,则队满的条件是()A.front==rearB.(front+1)%m==rearC.rear+1==frontD.(rear+1)%m==front24.循环队列存储在数组A[0..m]中,则入队时的操作为(D)。A.rear=rear+1B.rear=(rear+1)%(m-1)C.rear=(rear+1)%mD.rear=(rear+1)%(m+1)25.顺序栈S中top为栈顶指针,指向栈顶元素所在的位置,elem为存放栈的数组,则元素e进栈操作的主要语句为()A.s.elem[top]=e;B.s.elem[top+1]=e;s.top=s.top+1;s.top=s.top+1;C.s.top=s.top+1;D.s.top=s.top+1;s.elem[top+1]=e;s.elem[top]=e;326.循环队列sq中,用数组elem[0··25]存放数据元素,sq.front指示队头元素的前一个位置,sq.rear指示队尾元素的当前位置,设当前sq.front为20,sq.rear为12,则当前队列中的元素个数为()A.8B.16C.17D.1827.有关栈的描述,正确的是()A.栈是一种先进先出的特殊的线性表B.只能从栈顶执行插入、删除操作C.只能从栈顶执行插入、栈底执行删除D.栈顶和栈底均可执行插入、删除操作28.设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为()。A.R-FB.F-RC.(R-F+M)%MD.(F-R+M)%M29.设一数列的输入顺序为1,2,3,4,5,6,通过栈操作不可能排成的输出序列为()。A.3,2,5,6,4,1B.1,5,4,6,2,3C.2,4,3,5,1,6D.4,5,3,6,2,130.设有一个栈,元素的进栈次序为A,B,C,D,E,则下列()是不可能的出栈序列。A.A,B,C,D,EB.B,C,D,E,AC.E,A,B,C,DD.E,D,C,B,A31.在具有N个单元的顺序存储循环队列中,假定front和rear分别为对头指针和对尾指针,则判断对满的条件为()。A.front==rearB.(rear+1)%MAXSIZE==frontC.front-rear==1D.rear%MAXSIZE==front32.一个元素进入队列的时间复杂度是()。A.O(1)B.O(n)C.O(n2)D.O(log2n)33.若让元素1,2,3依次进栈,则出栈次序不可能出现()种情况。A.3,2,1B.2,1,3C.3,1,2D.1,3,234.假定一个链队的队首和队尾指针分别为front和rear,则判断队空的条件是()。A.front==NULLB.front!=NULLC.rear!=NULLD.front==rear35.若让元素a,b,c依次进栈,则出栈次序不可能出现()种情况。A.cbaB.bacC.cabD.acb36.在一个链队列中,假定front和rear分别为队头和队尾指针,则插入*s结点的操作应执行()。A.front-next=s;front=s;B.s-next=rear;rear=s;C.rear-next=s;rear=s;D.s-next=front;front=s;37.栈的插入与删除操作在()进行。A.栈顶B.栈底C.任意位置D.指定位置38.当利用大小为N的一维数组顺序存储一个栈时,假定用top=-1表示栈空,则向这个栈插入一个元素时,首先应执行()语句修改top指针。4A.top++;B.top--;C.top=NULL;D.top;39.当采用顺序存储方式存储队列时,可能出现存储空间剩余,而不允许继续入队的情况,称为()。A.溢出B.假溢出C.队列不能用顺序存储方式D.数组存储空间过小40.当利用大小为N的一维数组顺序存储一个循环队列时,该队列的最大长度为()。A.N-2B.N-1C.ND.N+141.从一个循环顺序队列删除元素时,首先需要()。A.前移一位队首指针B.后移一位队首指针C.取出队首指针所指位置上的元素D.取出队尾指针所指位置上的元素42.循环队列存储在数组A[0..m]中,则入队时的操作为()。A.rear=rear+1B.rear=(rear+1)%(m-1)C.rear=(rear+1)%mD.rear=(rear+1)%(m+1)43.4个园盘的Hahoi塔,总的移动次数为()。A.7B.8C.15D.1644.对于栈操作数据的原则是()。A.先进先出B.后进先出C.后进后出D.不分顺序45.有六个元素6,5,4,3,2,1的顺序进栈,问下列哪一个不是合法的出栈序列?()A.543612B.453126C.346521D.23415646.设栈的输入序列是1,2,3,4,则()不可能是其出栈序列。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,47.如进栈序列1,2,3,4,5。可能得到的出栈序列为()A.1,2,5,3,4B.3,1,2,5,4C.3,2,5,4,1D.1,4,2,3,5E.都不可能48.一个栈的入栈序列为A,B,C,D,E,则栈的不可能的出栈序列是()。A.ABCDEB.EDCBAC.DECBAD.DCEAB49.functioncalc(x,y:integer):integer;beginify=1thencalc:=xelsecalc:=calc(x,y-1)+xend;a,b均为正整数,则calc(a,b)=()A.a*(b-1)B.a*bC.a+bD.a+a50.执行完下列语句段后,i值为:()。intf(intx){return((x0)?x*f(x-1):2);}inti;i=f(f(1));A.2B.4C.8D.无限递归51.表达式a*(b+c)-d的后缀表达式是()。A.abcd*+-B.abc+*d-C.abc*+d-D.-+*abcd52.允许对队列进行的操作有()。5A.对队列中的元素排序B.取出最近进队的元素C.在队头元素之前插入元素D.删除队头元素53.用不带头结点的单链表存储队列,其队头指针指向队头结点,队尾指针指向队尾结点,则在进行出队操作时()A.仅修改队头指针B.仅修改队尾指针C.队头,队尾指针都可能要修改D.队头,队尾指针都要修改54.对于循环队列()。A.无法判断队列是否为空B.无法判断队列是否为满C.队列不可能满D.以上说法都不是55.循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是()。A.(rear-front+m)%mB.rear-front+1C.rear-front-1D.rear-front56.若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?()A.1和5B.2和4C.4和2D.5和157.栈和队的共同点是()。A.都是先进后出B.都是后进先出C.只允许在端点处插入和删除元素D.没有共同点58.设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1则栈S的容量至少应该是()。A.6B.4C.3D.259.4个园盘的Hahoi塔,总的移动次数为().A.7B.-8C.15D.1660.和顺序栈相比,链栈有一个比较明显的优势是()。A.通常不会出现栈满的情况B.通常不会出现栈空的情况C.插入操作更容易实现D.删除操作更容易实现61.执行()操作时,需要使用队列作辅助存储空间。A.查
本文标题:数据结构练习第三章栈和队列
链接地址:https://www.777doc.com/doc-2429468 .html