PTA第三章栈与队列练习题

合集下载

数据结构练习 第三章 栈和队列

数据结构练习 第三章 栈和队列

数据结构练习第三章栈和队列一、选择题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.队列的删除操作是在()进行。

数据结构第三章(栈与队列)考试题目

数据结构第三章(栈与队列)考试题目

第三章栈与队列一单项选择题:1.若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为( )A.i B.n-i C.n-i+1 D.不确定2.栈和队列的共同点是( )A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素D.没有共同点3.若依次输入数据元素序列{a,b,c,d,e,f,g}进栈,出栈操作可以和入栈操作间隔进行,则下列哪个元素序列可以由出栈序列得到?( )A.{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,g,a,f}4.一个栈的入栈序列是1,2,3,4,5,则下列序列中不可能的出栈序列是( )A. 2,3,4,1,5B. 5,4,1,3,2C. 2,3,1,4,5D. 1,5,4,3,25. 队列操作的原则是( )A. 先进先出B. 后进先出C. 只能进行插入D. 只能进行删除6. 栈的插入与删除是在( )进行。

A. 栈顶B. 栈底C. 任意位置D. 指定位置7.假设顺序栈的定义为:typedef struct {selemtype *base; /* 栈底指针*/selemtype *top; /* 栈顶指针*/int stacksize; /* 当前已分配的存储空间,以元素为单位*/}sqstack;变量st为sqstack型,则栈st为空的判断条件为()。

A.st.base == NULL B.st.top == st.stacksizeC.st.top-st.base>= st.stacksize D.st.top == st.base8.假设顺序栈的定义同上题,变量st为sqstack型,则栈st为满的判断条件为()。

A.st.base == NULL B.st.top == st.stacksizeC.st.top-st.base>= st.stacksize D.st.top == st.base9.在少用一个元素空间的循环队列QU ( m0为最大队列长度(以元素为单位),front和rear分别为队列的队头指针和队尾指针) 中,当队列非空时,若插入一个新的数据元素,则其队尾指针rear的变化是( )。

栈和队列_习题

栈和队列_习题

第三章栈和队列一、单项选择题1.当利用大小为N的数组顺序存储一个栈时,假定用top=N表示栈空,则向这个栈入栈时,首先应执行( )语句修改top指针。

A. top++B. top--C. top=0D. top=N-12.假定利用数组a[N]顺序存储一个栈,用top表示栈顶指针,top= -1表示栈空,并已知栈未满,当元素X入栈时执行的操作为( )。

A. a[--top]=XB. a[top--]=XC. a[++top]=XD. a[top++]=X3.假定利用数组a[N]顺序存储一个栈,用top表示栈顶指针,top=-1表示栈空,并已知栈未空,当退栈并返回栈顶元素执行的操作为( )。

A. return a[--top]B. return a[top--]C. return a[++top]D. return a[top++]4.假定一个链栈的栈顶指针用top表示,每个节点的结构为data域和next指针域,当p所指向的结点进栈时,执行的操作为()A. p->next=top;top=top->nextB. top=p;p->next=topC. p->next=top->nextD. p->next=top;top=p5.假定一个链栈的栈顶指针用top表示,每个节点的结构为data域和next指针域,当执行退栈时,执行的操作为()A. top->next=topB. top=top->dataC. top=top->nextD. top->next=top->next->next6.若让元素1,2,3,4依次进栈,则出栈次序不可能出现( )种情况。

A.3,2,1,4B.2,1,4,3C.4,3,2,1D.1,4,2,37. 在一个循环队列中,队首指针指向队首元素的( )位置。

A. 前一个B. 后一个C. 当前D. 最后7. 在一个链队中,假设f与r分别为队首和队尾指针,则插入s所指结点的运算时( )A.f->next=s;f=sB.r->next=s;r=sC.s->next=r;r=sD.s->next=f;f=s8. 假定利用数组a[N]循环顺序存储一个队列,用f和r分别表示队首和队尾指针,并已知队未满,当元素X入队时执行的操作为( )。

栈和队列习题

栈和队列习题

第三章栈和队列练习题一、单项选择题1.一个顺序栈一旦被声明,其占用空间的大小()。

A.已固定B.可以改变C.不能固定D.动态变化2.链栈和顺序栈相比,有一个比较明显的缺点,即()。

A.插入操作更加方便B.通常不会出现栈满的情况C.不会出现栈空的情况D.删除操作更加方便3.用单链表表示的链式队列的队头在链表的()位置。

A.链头B.链尾C.链中D.任意位置4.在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印数据缓冲区,主机将要输出的数据依次写入缓冲区中,而打印机则从缓冲区中取出数据打印,该缓冲区应该是一个()结构。

A.堆栈B.队列C.数组D.先性表5.若已知一个栈的入栈序列是1,2,3,…,30,其输出序列是p1,p2,p3,…p n,若p1=30,则p10为()。

A.11 B.20 C.19 D.216.循环队列A[m] 存放其元素,用front和rear分别表示队头及队尾,则循环队列满的条件是()。

A.(rear+1)%m=front B.rear =front+1C.rear=front D.(rear+1)%m-1=front7.在一个栈顶指针为top的链栈中,将一个p指针所指的结点入栈,应执行()。

A.top->next=p; B.p->next=top->next; top->next=p;C.p->next=top; top=p; D.p->next=top->next; top=top->next;8.在一个栈顶指针为top的链栈中删除一个结点时,用x保存被删结点的值,则执行()。

A.x=top;top=top->next; B.x=top->data;C.top=top->next; x=top->data; D.x=top->data; top=top->next;9.表达式a*(b+c)-d的后缀表达式是()。

第3章 栈与队列习题参考答案

第3章 栈与队列习题参考答案

习题三参考答案备注: 红色字体标明的是与书本内容有改动的内容。

一、选择题1.在栈中存取数据的原则是( B )。

A.先进先出 B. 先进后出C. 后进后出D. 没有限制2.若将整数1、2、3、4依次进栈,则不可能得到的出栈序列是( D )。

A.1234 B. 1324 C. 4321 D. 14233.在链栈中,进行出栈操作时(B )。

A.需要判断栈是否满 B. 需要判断栈是否为空C. 需要判断栈元素的类型D. 无需对栈作任何差别4.在顺序栈中,若栈顶指针top指向栈顶元素的下一个存储单元,且顺序栈的最大容量是maxSize,则顺序栈的判空条件是( A )。

A.top==0 B.top==-1 C. top==maxSize D.top==maxSize-15.在顺序栈中,若栈顶指针top指向栈顶元素的下一个存储单元,且顺序栈的最大容量是maxSize。

则顺序栈的判满的条件是( C )。

A.top==0 B.top==-1 C. top==maxSize D.top==maxSize-16.在队列中存取数据元素的原则是( A )。

A.先进先出 B. 先进后出C. 后进后出D. 没有限制7.在循环顺序队列中,假设以少用一个存储单元的方法来区分队列判满和判空的条件,front和rear分别为队首和队尾指针,它们分别指向队首元素和队尾元素的下一个存储单元,队列的最大存储容量为maxSize,则队列的判空条件是(A )。

A.front==rear B. front!=rearC. front==rear+1D. front==(rear+1)% maxSize8.在循环顺序队列中,假设以少用一个存储单元的方法来区分队列判满和判空的条件,front和rear分别为队首和队尾指针,它们分别指向队首元素和队尾元素的下一个存储单元,队列的最大存储容量为maxSize,则队列的判满条件是(D )。

A.front==rear B. front!=rearC. front==rear+1D. front==(rear+1)% maxSize9.在循环顺序队列中,假设以少用一个存储单元的方法来区分队列判满和判空的条件,front和rear分别为队首和队尾指针,它们分别指向队首元素和队尾元素的下一个存储单元,队列的最大存储容量为maxSize,则队列的长度是(C )。

PTA第三章栈和队列练习题

PTA第三章栈和队列练习题

1-1通过对堆栈S 操作:Push(S,1), Push(S,2), Pop(S), Push(S,3), Pop(S), Pop(S)。

输出的序列为:123。

(2分)TF 作者: DS 课程组单位: 浙江大学 1-2在用数组表示的循环队列中,front 值一定小于等于rear 值。

(1分)TF 作者: DS 课程组单位: 浙江大学 1-3若一个栈的输入序列为{1, 2, 3, 4, 5},则不可能得到{3, 4, 1, 2, 5}这样的出栈序列。

(2分)TF 作者: 徐镜春单位: 浙江大学 1-4If keys are pushed onto a stack in the order {1, 2, 3, 4, 5}, then it is impossible to obtain the output sequence {3, 4, 1, 2, 5}. (2分)TF 作者: 徐镜春单位: 浙江大学 1-5所谓“循环队列”是指用单向循环链表或者循环数组表示的队列。

(1分)TF 作者: DS 课程组单位: 浙江大学 1-6An algorithm to check for balancing symbols in an expression uses a stack to store the symbols. (1分)T F 2-1设栈S 和队列Q 的初始状态均为空,元素a 、b 、c 、d 、e 、f 、g 依次进入栈S 。

若每个元素出栈后立即进入队列Q ,且7个元素出队的顺序是b 、d 、c 、f 、e 、a 、g ,则栈S 的容量至少是: (2分)1. 12. 23. 34. 4作者: DS课程组单位: 浙江大学2-2若元素a、b、c、d、e、f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈工作,则不可能得到的出栈序列是?(2分)1. b c a e f d2. c b d a e f3. d c e b f a4. a f e d c b作者: DS课程组单位: 浙江大学2-3设一个栈的输入序列是1、2、3、4、5,则下列序列中,是栈的合法输出序列的是?(2分)1. 3 2 1 5 42. 5 1 2 3 43. 4 5 1 3 24. 4 3 1 2 51.PPPOOOPPOPPOOO2.POPOPOPPOPPOOO3.POPPOOPPOPOOPO4.POPPOOPPOPPOOO作者: DS课程组单位: 浙江大学2-5设一个堆栈的入栈顺序是1、2、3、4、5。

数据结构第三章栈和队列练习及答案

数据结构第三章栈和队列练习及答案

一、选择题一、选择题1、栈中存取数据的原则()、栈中存取数据的原则()A 、先进先出B 、先进后出C 、后进后出D 、随意进出、随意进出2、队列中存取数据的原则()、队列中存取数据的原则() A 、先进先出 B 、后进先出 C 、先进后出 D 、随意进出、随意进出3、插入和删除只能在一端进行的线性表,称为()、插入和删除只能在一端进行的线性表,称为()A 、队列B 、循环队列C 、栈D 、循环栈、循环栈4、在栈中,出栈操作的时间复杂度为()、在栈中,出栈操作的时间复杂度为()A 、O (1)B 、O (log 2n )C 、O (n )D 、O (n 2)5、设长度为n 的链队列用单循环链表表示,若只设头指针,则入队操作的时间复杂度为的链队列用单循环链表表示,若只设头指针,则入队操作的时间复杂度为()() A 、O (1) B 、O (log 2n ) C 、O (n ) D 、O (n 2)6、设长度为n 的链队列用单循环链表表示,若只设头指针,则出队操作的时间复杂度为的链队列用单循环链表表示,若只设头指针,则出队操作的时间复杂度为()() A 、O (1) B 、O (log 2n ) C 、O (n ) D 、O (n 2)7、一个线性表的第一个元素的存储地址是100,每个元素的长度是2,则第5个元素的地址是()是() A 、110 B 、108 C 、100 D 、1208、一个栈的入栈序列是a,b,c,d,e ,则栈的不可能的输出序列是(),则栈的不可能的输出序列是()A 、edcbaB 、decbaC 、dceabD 、abcde9、若已知一个栈的入栈序列是1,2,3,……,n ,其输出序列是p1,p2,p3,……,pn ,若p1=n ,则pi 为()为()A 、iB 、n=iC 、n-i+1D 、不确定、不确定10、判断一个栈ST (最多元素m0)为空的条件是())为空的条件是()A 、ST->top==0B 、ST->top==-1C 、ST->top!=m0D 、ST->top==m0 11、判断一个栈ST (最多元素m0)为满的条件是())为满的条件是()A 、ST->top!=0B 、ST->top==0C 、ST->top!=m0D 、ST->top==m0 12、判断一个循环队列QU (最多元素为m0)为空的条件是())为空的条件是() A 、QU.front==QU.rear B 、QU.front!=QU.rearC 、QU.front==(QU.rear+1)%m0D 、QU.front!=(QU.rear+1)%m013、判断一个循环队列QU (最多元素为m0)为满的条件是())为满的条件是()A 、QU.front==QU.rearB 、QU.front!=QU.rearC 、QU.front==(QU.rear+1)%m0D 、QU.front!=(QU.rear+1)%m0 14、循环队列用数组存放其元素值A[0,m-1],已知其头尾指针分别是rear 和front ,则当前队列的元素个数是()队列的元素个数是()A 、(rear-front+m)%mB 、rear-front+1C 、rear-front-1D 、rear-front 15、栈和队列的共同特点是()、栈和队列的共同特点是()A 、都是先进后出B 、都是先进先出、都是先进先出C 、只允许在端点处插入和删除D 、没有共同点、没有共同点二、填空题二、填空题1、设长度为n 的链队列用单循环链表表示,若只设头指针,则入队和出队操作的时间复杂度分别为(O(N))和(O(1));若又设尾指针,则入队和出队操作的时间复杂度分别为(O(1))和(O(1))。

第三章,栈和队列,练习题

第三章,栈和队列,练习题

第三章,栈和队列,练习题一、选择题1、栈结构通常采用的两种存储结构是。

A、顺序存储结构和链表存储结构B、散列和索引C、链表存储结构和数组D、线性链表和非线性存储2、设栈ST用顺序存储结构表示,则栈ST为空的条件是A、ST.top-ST.base0B、ST.top-ST.base==0C、ST.top-ST.basenD、ST.top-ST.base==n3、向一个栈顶指针为HS的链栈中插入一个s结点时,则执行A、HS->next=s;B、s->next=HS->next;HS->next=s;C、s->next=HS;HS=s;D、s->next=HS;HS=HS->next;4、从一个栈顶指针为HS的链栈中删除一个结点,用x保存被删除结点的值,则执行A、x=HS;HS=HS->next;B、HS=HS->next;x=HS->data;C、x=HS->data;HS=HS->next; D、s->next=Hs;Hs=HS->next;7、一个队列的入列序列是1,2,3,4,则队列的输出序列是//尾插入元素,头删除元素。

A、4,3,2,1B、1,2,3,C、1,4,3,D、3,2,4,19、循环队列SQ采用数组空间SQ.base[0,n-1]存放其元素值,已知其头尾指针分别是front和rear,则判定此循环队列为满的条件是//不懂啊!!!A、Q.front==Q.rearB、Q.front!=Q.rearC、Q.front==%nD、Q.front!=%n11、用单链表表示的链式队列的队头在链表的位置A、链头B、链尾C、链中12、判定一个链队列Q为空的条件是A、Q.front==Q.rearB、Q.front!=Q.rearC、Q.front==%nD、Q.front!=%n14、在一个链队列Q中,删除一个结点需要执行的指令是A、Q.rear=Q.front->next;B、Q.rear->next=Q.rear->next->next;C、Q.front->next=Q.front->next->next;D、Q.front=Q.rear->next;15、用不带头结点的单链表存储队列,其队头指针指向队头结点,队尾指针指向队尾结点,则在进行出队操作时 A、仅修改队头指针 B、仅修改队尾指针 C、队头尾指针都要修改 D、队头尾指针都可能要修改。

数据结构第三章 栈和队列题库(30道)

数据结构第三章 栈和队列题库(30道)

数据结构第三章栈和队列1、栈的“先进后出”特性是指(——[单选题]A 最后进栈的元素总是最先出栈B 当同时进行进栈和出栈操作时,总是进栈优先C 每当有出栈操作时,总要先进行一次进栈操作D 每次出栈的元素总是最先进栈的元素正确答案:A2、设一个栈的进栈序列是A、B、C、D(即元素A~D依次通过该栈),则借助该栈所得到的输出序列不可能是( )。

——[单选题]A A,B,C,DB D,C,B,AC A,C,D,BD D,A,B,C正确答案:D3、一个栈的进栈序列是a、b、c、d、e,则栈的不可能的输出序列是( )。

——[单选题]A edcbaB decbaC dceabD abcde正确答案:C4、已知一个栈的进栈序列是1,2,3,…,n,其输出序列的第一个元素是i(1≤i≤n)则第j(1≤j≤n)个出栈元素是( )。

——[单选题]A iB n-iC j-i+1D 不确定正确答案:D5、设顺序栈st的栈顶指针top的初始时为-1,栈空间大小为MaxSize,则判定st栈为栈空的条件为( )。

——[单选题]A st.top==-1B st.top!=-1C st.top!=MaxSizeD st.top==MaxSize6、设顺序栈st的栈顶指针top的初始时为-1,栈空间大小为MaxSize,则判定st栈为栈满的条件是。

——[单选题]A st.top!=-1B st.top==-1C st.top!=MaxSize-1D st.top==MaxSize-1正确答案:D7、当用一个数组data[0..n- 1]存放栈中元素时,栈底最好(——[单选题]A 设置在data[0]处B 设置在data[n- 1]处C 设置在data[0]或data[n- 1]处D 设置在data数组的任何位置正确答案:C8、若一个栈用数组data[1..n]存储,初始栈顶指针top为0,则以下元素x进栈的正确操作是(——[单选题]A top++; data[top]=x;B data[top]=x; top++;C Top--; data[top]=x;D data[top]=x; top--;正确答案:A9、若一个栈用数组data[1..n]存储,初始栈顶指针top为n,则以下元素I进栈的正确操作是(——[单选题]A top++; data[top]= x;B data[top]=x; top++ ;C top--; data top]=x;D data[top]=x; top--;正确答案:D10、队列中元素的进出原则是( )。

《数据结构》习题汇编03第三章栈和队列试题

《数据结构》习题汇编03第三章栈和队列试题

第三章栈和队列试题一、单项选择题1.栈的插入和删除操作在()进行。

A. 栈顶B. 栈底C. 任意位置D. 指定位置2.当利用大小为n的数组顺序存储一个栈时,假定用top==n表示栈空,则向这个栈插入一个元素时,首先应执行()语句修改top指针。

A. top++;B. top--;C. top = 0;D. top;3.若让元素1,2,3依次进栈,则出栈次序不可能出现()种情况。

A. 3, 2, 1B. 2, 1, 3C. 3, 1, 2D. 1, 3, 24.在一个顺序存储的循环队列中,队头指针指向队头元素的()位置。

A. 前一个B. 后一个C. 当前D. 后面5.当利用大小为n的数组顺序存储一个队列时,该队列的最大长度为()。

A. n-2B. n-1C. nD. n+16.从一个顺序存储的循环队列中删除一个元素时,需要()。

A. 队头指针加一B. 队头指针减一C. 取出队头指针所指的元素D. 取出队尾指针所指的元素7.假定一个顺序存储的循环队列的队头和队尾指针分别为front和rear,则判断队空的条件为()。

A. front+1 == rearB. rear+1 == frontC. front == 0D. front == rear8.假定一个链式队列的队头和队尾指针分别为front和rear,则判断队空的条件为()。

A. front == rearB. front != NULLC. rear != NULLD. front == NULL9.设链式栈中结点的结构为(data, link),且top是指向栈顶的指针。

若想在链式栈的栈顶插入一个由指针s所指的结点,则应执行操作()。

A. top->link = s;B.s->link = top->link; top->link = s;C. s->link = top; top = s;D. s->link = top; top = top->link;10.设链式栈中结点的结构为(data, link),且top是指向栈顶的指针。

第三章栈和队列习题

第三章栈和队列习题

第三章 栈和队列1、什么叫堆栈?什么叫队列? 2、 线性表、堆栈和队列这三种抽象数据类型有什么相同之处和不同之处? 3、 在顺序队列中,什么叫真溢出?什么叫假溢出?为什么顺序队列通常都采 用顺序循环队列结构? 4、 什么叫优先级队列?优先级队列和队列有什么相同之处和不同之处? 5.(1) 什么是递归程序? (2)递归程序的优、缺点是什么? (3)递归程序在执行时,应借助于什么来完成? (4)递归程序的入口语句、出口语句一般用什么语句实现? 6、设有 4 个数据元素 a1、a2、a3 和 a4,对他们分别进行栈操作或队操作。

在 进栈或进队操作时,按 a1、a2、a3、a4 次序每次进入一个元素。

假设栈或队的 初始状态都是空。

现要进行的栈操作是进栈两次,出栈一次,再进栈两次,出栈一次;这时, 第一次出栈得到的元素是 A ,第二次出栈得到的元素是 B ;类似地,考虑对这四个数据元素进行的队操作是进队两次,出队一次,再进队两次,出 队一次;这时,第一次出队得到的元素是 C ,第二次出队得到的元素 E 个。

是 D 。

经操作后,最后在栈中或队中的元素还有供选择的答案: A~D:①a1 ②a2E: ①1 ②2 ③ 3 ④ 0③ a3④a47、 栈是一种线性表,它的特点是 A 。

设用一维数组 A[1,…,n]来表示一个栈, A[n]为栈底,用整型变量 T 指示当前栈顶位置,A[T]为栈顶元素。

往栈中推入 (PUSH)一个新元素时,变量 T 的值 B 变量 T 的值 C ;从栈中弹出(POP)一个元素时,。

设栈空时,有输入序列 a,b,c,经过 PUSH,POP,PUSH, ,变量 T 的值是 E 。

PUSH,POP 操作后,从栈中弹出的元素的序列是 D供选择的答案:A:① 先进先出 ②后进先出 ③进优于出 ④出优于进 ⑤随机进出 B,C:① 加 1 ②减 1 ③不变 ④清 ⑤ 加 2 ⑥减 2D:① a,b E: ① n+1②b,c ②n+2③c,a ④b,a ⑤ c,b ③ n ④ n-1 ⑤ n-2⑥ a,c8、在做进栈运算时,应先判别栈是否 A ;在做退栈运算时,应先判别栈是 否 B 。

数据结构第三章栈和队列习题

数据结构第三章栈和队列习题

03栈和队列【单选题】1. 设入栈先后顺序为a,b,c,且在入栈过程中可出栈,则不可能得到的出栈序列是(B)。

A、a,b,cB、c,a,bC、b,c,aD、b,a,c2. 栈是一种(B)的线性表。

A、先进先出B、后进先出C、随意进出3. 在一个可存放n个数据元素的顺序栈中,假设以高地址端为栈底,以top为栈顶指针,当向栈中压入一个数据元素时,top的变化是(D)。

A、不变B、top=nC、top++D、top--4. 设在一不带头结点的链队列中,front和rear分别为其队头和队尾指针,则删除一个结点的操作是(C)。

A、rear=front.nextB、rear=rear.nextC、front=front.nextD、front=rear.next5. 向一个栈顶指针为s且带头结点的链栈中插入一个p所指结点时,应执行(B)。

A、s.next=p;B、p.next=s.next;s.next=pC、p.next=s;s=p;D、p.next=s;s=s.next;6. 从一个栈顶指针为s且不带头结点的链栈中删除一个结点,用x保存被删结点的值,则执行(D)。

A、x=s;s=s.next;B、x=s.data;C、s=s.next;x=s.data;D、x=s.data;s=s.next;7. 设在一不带头结点的链队列中,front和rear分别为其队头和队尾指针,则插入p所指结点的操作是(B)。

A、front.next=p;front=p;B、rear.next=p;rear=p;C、p.next=rear;rear=p;D、p.next=front;front=p;8. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为(C)。

A、iB、n-iC、n-i+1D、不确定【计算题】1. 设入栈序列a、b、c、d,且在入栈的过程中允许出栈,试写出所有不可能得到的出栈序列。

第三章栈和队列习题

第三章栈和队列习题

一、判断1. 队列中所有的插入操作都发生在表的一端,删除则发生在表的另一端2. 栈具有先进先出的特性3. 队列为先进后出的结构4. 栈用于实现子程序调用5. 栈、队列必须用数组来表示6. 队列用于操作系统中的作业调度7. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。

8. 栈和链表是两种不同的数据结构。

9. 栈和队列的存储方式既可是顺序方式,也可是链接方式。

二、单项选择1.循环队列用数组A[maxsize] 表示,下面哪个选项表示该循环队列队满(A) rear==maxsize-1 (B) front==(rear+1)%maxsize(C) rear-front==maxsize (D) rear-front==maxsize-12.元素的入栈序列是a,b,c,d,则栈的不可能的输出序列是(A) dcba (B)abcd (C) dcab (D) cbad3.在用数组queue[maxsize]仿真队列时(temp为int型变量),假设队列中至少有一个元素,出队列操作应执行以下(A) temp=queue[rear];rear--; (B) rear++; temp=queue[rear];(C) temp=queue[front];front--; (D) front++; temp=queue[front];4.下列哪种数据结构常用于函数调用(A) 堆栈 (B) 队列 (C) 链表 (D) 数组5.编译器中通常以哪种数据结构处理递归程序调用(A)队列(B)数组(C)堆栈(D)记录6.下列哪些数据结构可用来实现堆栈(1)链表(2)数组(3)树(4)图(A)(2),(3)(B)(2),(4)(C)(1),(4)(D)(1),(2)7.下列哪种数据结构常用于系统程序的作业调度(A)栈(B)队列(C)链表(D)数组8.栈和队列的共同点是(A)都是先进后出(B)都是先进先出(C)只允许在端点处插入和删除元素(D)没有共同点9.若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为A.i B.n=i C.n-i+1 D.不确定10.判定一个栈ST(最多元素为m0)为空的条件是A.ST->top<>0 B.ST->top=0 C.ST->top<>m0 D.ST->top=m011.数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素的公式为(A)r-f; (B)(n+f-r)% n; (C)n+r-f (D)(n+r-f)% n 12.在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则从该缓冲区中取出数据打印.该缓冲区应该是一个结构.(A) 堆栈 (B)队列 (C)数组 (D)线性表13、判断一个队列QU(最多元素为m0)为空的条件是A. rear- front==m0B. rear- front-1==m0C. front== rearD. front== rear+114、判断一个循环队列QU(最多元素为m0)为满队列的条件是A. front== rearB. front!= rearC. front==( rear+1)%m0D. front!=( rear+1)%m015.一个队列(数组仿真,最多元素为MaxSize)下列哪个选项表示了队列空间全部被利用?A. rear – front == MaxSizeB. rear – front == MaxSize –1C. rear == frontD. rear + 1 == front16.判定一个循环队列(数组仿真,最多元素为MaxSize)为空的条件是? A. front == rear B. front != rearC. front == (rear + 1)%MaxSizeD. front != (rear + 1)%MaxSize17、若用一个大小为6的数组来实现循环队列,且当rear和front的值分别为0和3。

数据结构第3章栈和队列练习题

数据结构第3章栈和队列练习题

第三章栈和队列一、选择题1. 以下不是栈的基本运算的是( )A) 删除栈顶元素B) 删除栈底元素C) 判断栈是否为空D) 将栈置为空栈2. 若进栈序列为1,2,3,4, 进栈过程中可以出栈,则下列不可能的一个出栈序列是( )A) 1,4,3,2 B) 2,3,4,1C) 3,1,4,2 D) 3,4,2,13. 栈和队列的共同点( )A) 都是先进先出B) 都是后进先出C) 只允许在端点处插入和删除元素D) 没有共同点4•若已知一个进栈序列是1,2,3, ••…,n,其输出序列是p1,p2,vp3,…・卩n,若p仁n,贝U pi(1<i<n)为( )。

A) I B) n-iC) n-i+1 D) 不确定5•判断一个栈ST(最多元素为MaxSize)为空的条件是()A) ST->top==1 B) ST->top==-1C) ST->top!=MaxSize-1 D) ST->top==MaxSize-16•向一个栈指针为HS的链式栈中插入一个s所指的结点时,则执行()A) HS->NEXT=S;B) S->NEXT=HS->NEXT;HS->NEXT=S;C) S->NEXT=HS;HS=S;D) S-.NEXT=HS;HS=HS->NEXT;7•在一个链式队列中•假设f和r分别为队头和队尾指针,则插入s所指的结点运算是()A) f->next=s;f=s; B) r->next=s;r=s;C) s->next=s;r=s; D) s->next=f;f=s;8•在一个链式队列中,假设f和r分别为队头和队尾指针,则删除结点的运算是()A) r=f->next; B) r=r->next;C) f=f->next; D) f=r->next;9•下列关于线性表,栈和队列叙述,错误的是()A) 线性表是给定的n(n 必须大于零)个元素组成的序列B) 线性表允许在表的任何位置进行插入和删除操作C) 栈只允许在一端进行插入和删除操作D) 队列只允许在一端进行插入一端进行删除10•—个队列的入队序列是1,2,3,4,则队列的输出序列是()A) 4,3,2,1 B) 1,2,3,4C) 1,4,3,2 D) 3,2,4,111. 设初始输入序列为1,2,3,4,5,利用一个栈产生输出序列,下列()序列是不可能通过栈产生的•A) 1,2,3,4,5 B) 5,3,4,1,2C) 43,2,1,5 D) 3,4,5,2,112. 设栈s的初始状态为空,6个元素的入栈顺序为e1,e2,e3,e4,e5和e6.若出栈的顺序是e2,e4,e3,e6,e5,e1,则栈s的容量至少应该是()A.插入排序 C 快速排序23. 栈的插入和删除操作在(A 栈顶 )进行。

数据结构第3章 栈与队列习题

数据结构第3章 栈与队列习题

第3章栈与队列一、单项选择题1.元素A、B、C、D依次进顺序栈后,栈顶元素是,栈底元素是。

A.A B.BC.C D.D2.经过以下栈运算后,x的值是。

InitStack(s);Push(s,a);Push(s,b);Pop(s,x);GetTop(s,x);A.a B.bC.1 D.03.已知一个栈的进栈序列是ABC,出栈序列为CBA,经过的栈操作是。

A.push,pop,push,pop,push,pop B.push,push,push,pop,pop,pop C.push,push,pop,pop,push,pop D.push,pop,push,push,pop,pop 4.设一个栈的输入序列为A、B、C、D,则借助一个栈所得到的序列是。

A.A,B,C,D B.D,C,B,AC.A,C,D,B D.D,A,B,C5.一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是。

A.edcba B.decbaC.dceab D.abcde6.已知一个栈的进栈序列是1,2,3,……,n,其输出序列的第一个元素是i,则第j个出栈元素是。

A.i B.n-iC.j-i+1 D.不确定7.已知一个栈的进栈序列是1,2,3,……,n,其输出序列是p1,p2,…,Pn,若p1=n,则pi的值。

A.i B.n-iC.n-i+1 D.不确定8.设n个元素进栈序列是1,2,3,……,n,其输出序列是p1,p2,…,pn,若p1=3,则p2的值。

A.一定是2 B.一定是1 C.不可能是1 D.以上都不对9.设n个元素进栈序列是p1,p2,…,pn,其输出序列是1,2,3,……,n,若p3=1,则p1的值。

A.可能是2 B.一定是1 C.不可能是2 D.不可能是310.设n个元素进栈序列是p1,p2,…,pn,其输出序列是1,2,3,……,n,若p 3=3,则p1的值。

A.可能是2 B.一定是2 C.不可能是1 D.一定是111.设n个元素进栈序列是p1,p2,…,pn,其输出序列是1,2,3,……,n,若p n =1,则pi(1≤i≤n-1)的值。

PTA第三章栈和队列练习题

PTA第三章栈和队列练习题

1-1通过对堆栈S 操作:Push(S,1), Push(S,2), Pop(S), Push(S,3), Pop(S), Pop(S)。

输出的序列为:123。

(2分)TF 作者: DS 课程组单位: 浙江大学 1-2在用数组表示的循环队列中,front 值一定小于等于rear 值。

(1分)TF 作者: DS 课程组单位: 浙江大学 1-3若一个栈的输入序列为{1, 2, 3, 4, 5},则不可能得到{3, 4, 1, 2, 5}这样的出栈序列。

(2分)TF 作者: 徐镜春单位: 浙江大学 1-4If keys are pushed onto a stack in the order {1, 2, 3, 4, 5}, then it is impossible to obtain the output sequence {3, 4, 1, 2, 5}. (2分)TF 作者: 徐镜春单位: 浙江大学 1-5所谓“循环队列”是指用单向循环链表或者循环数组表示的队列。

(1分)TF 作者: DS 课程组单位: 浙江大学 1-6An algorithm to check for balancing symbols in an expression uses a stack to store the symbols. (1分)T F 2-1设栈S 和队列Q 的初始状态均为空,元素a 、b 、c 、d 、e 、f 、g 依次进入栈S 。

若每个元素出栈后立即进入队列Q ,且7个元素出队的顺序是b 、d 、c 、f 、e 、a 、g ,则栈S 的容量至少是: (2分)1. 12. 23. 34. 4作者: DS课程组单位: 浙江大学2-2若元素a、b、c、d、e、f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈工作,则不可能得到的出栈序列是?(2分)1. b c a e f d2. c b d a e f3. d c e b f a4. a f e d c b作者: DS课程组单位: 浙江大学2-3设一个栈的输入序列是1、2、3、4、5,则下列序列中,是栈的合法输出序列的是?(2分)1. 3 2 1 5 42. 5 1 2 3 43. 4 5 1 3 24. 4 3 1 2 51.PPPOOOPPOPPOOO2.POPOPOPPOPPOOO3.POPPOOPPOPOOPO4.POPPOOPPOPPOOO作者: DS课程组单位: 浙江大学2-5设一个堆栈的入栈顺序是1、2、3、4、5。

数据结构-第3章--栈和队列练习题.doc

数据结构-第3章--栈和队列练习题.doc

第3章栈和队列一选择题1. 对于栈操作数据的原则是()。

A. 先进先出B. 后进先出C. 后进后出D. 不分顺序2. 在作进栈运算时,应先判别栈是否( ① ),在作退栈运算时应先判别栈是否( ② )。

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

为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的内存空间时,应将两栈的 ( ④ )分别设在这片内存空间的两端,这样,当( ⑤ )时,才产生上溢。

①, ②: A. 空 B. 满 C. 上溢 D. 下溢③: A. n-1 B. n C. n+1 D. n/2④: A. 长度 B. 深度 C. 栈顶 D. 栈底⑤: A. 两个栈的栈顶同时到达栈空间的中心点.B. 其中一个栈的栈顶到达栈空间的中心点.C. 两个栈的栈顶在栈空间的某一位置相遇.D. 两个栈均不空,且一个栈的栈顶到达另一个栈的栈底.3. 一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是()。

A. 不确定B. n-i+1C. iD. n-i4. 若一个栈的输入序列为1,2,3,…,n,输出序列的第一个元素是i,则第j个输出元素是()。

A. i-j-1B. i-jC. j-i+1D. 不确定的5. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,p N,若p N是n,则p i是( )。

A. iB. n-iC. n-i+1D. 不确定6. 有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?()A. 5 4 3 6 1 2B. 4 5 3 1 2 6C. 3 4 6 5 2 1D. 2 3 4 1 5 67. 设栈的输入序列是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,8. 一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是()。

PTA第三章栈和队列理解练习知识题

PTA第三章栈和队列理解练习知识题

1-1通过对堆栈S操作:Push(S,1), Push(S,2), Pop(S), Push(S,3), Pop(S), Pop(S)。

输出的序列为:123。

(2分)T F作者: DS课程组单位: 浙江大学1-2在用数组表示的循环队列中,front值一定小于等于rear值。

(1分)T F作者: DS课程组单位: 浙江大学1-3若一个栈的输入序列为{1, 2, 3, 4, 5},则不可能得到{3, 4, 1, 2, 5}这样的出栈序列。

(2分)T F作者: 徐镜春单位: 浙江大学1-4If keys are pushed onto a stack in the order {1, 2, 3, 4, 5}, then it is impossible to obtain the output sequence {3, 4, 1, 2, 5}. (2分)T F作者: 徐镜春单位: 浙江大学1-5所谓“循环队列”是指用单向循环链表或者循环数组表示的队列。

(1分)T F作者: DS课程组单位: 浙江大学1-6An algorithm to check for balancing symbols in an expression uses a stack to store the symbols. (1分)T F2-1设栈S和队列Q的初始状态均为空,元素a、b、c、d、e、f、g依次进入栈S。

若每个元素出栈后立即进入队列Q,且7个元素出队的顺序是b、d、c、f、e、a、g,则栈S的容量至少是:(2分)1. 12. 23. 34. 4作者: DS课程组单位: 浙江大学2-2若元素a、b、c、d、e、f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈工作,则不可能得到的出栈序列是?(2分)1. b c a e f d2. c b d a e f3. d c e b f a4. a f e d c b作者: DS课程组单位: 浙江大学2-3设一个栈的输入序列是1、2、3、4、5,则下列序列中,是栈的合法输出序列的是?(2分)1. 3 2 1 5 42. 5 1 2 3 43. 4 5 1 3 24. 4 3 1 2 51.PPPOOOPPOPPOOO2.POPOPOPPOPPOOO3.POPPOOPPOPOOPO4.POPPOOPPOPPOOO作者: DS课程组单位: 浙江大学2-5设一个堆栈的入栈顺序是1、2、3、4、5。

PTA第三章栈与队列

PTA第三章栈与队列

PTA第三章栈与队列⼀、判断题1.若⼀个栈的输⼊序列为1,2,3,……,N,输出序列的第⼀个元素为i,则第j个输出的元素是j-i-1 (×)解析:应该是不确定的,不能保证数字出栈后不会再⼊栈2.所谓“循环队列”是指⽤单向循环链表或者循环数组表⽰的队列(×)解析:循环队列指的是后者,⽤数组表⽰的队列,利⽤求余数运算使得头尾相接3.在对不带头结点的链队列做出队操作时,不会改变头指针的值(×)解析:会改变头指针的值,变成相连指针的值4.不论是⼊队列操作还是⼊栈操作,在顺序存储结构上都需要考虑“溢出”的情况(√)解析:因为存储空间是有限的5.队列和栈都是运算受限的线性表,只允许在表的两端进⾏运算(×)解析:前半句对,后半句中栈只能在⼀段进⾏操作,只有队列才是在两端进⾏操作6.栈和队列的存储⽅式,既可以是顺序⽅式,也可以是链式⽅式(√)7.循环队列也存在着空间溢出问题(√)解析:循环队列的存储空间也是有限的8.循环队列执⾏出队操作时会引起⼤量元素的移动(×)9.栈是插⼊和删除只能在⼀端进⾏的线性表;队列是插⼊在⼀端进⾏,删除在另⼀端进⾏的线性表(√)10.在n个元素连续进栈以后,他们的出栈顺序和进栈顺序⼀定正好相反(√)11.环形队列中有多少个元素可以根据队⾸指针和队尾指针的值来计算(√)12.栈和队列的插⼊和删除操作特殊,所以,栈和队列是⾮线性结构(×)13.序列{1,2,3,4,5}依次⼊栈,则不可能得到{3,4,1,2,5}的出栈序列(√)14.队列中允许插⼊的⼀端叫队头,允许删除的⼀端叫队尾(×)解析:正好相反,允许插⼊的⼀端叫队尾,允许删除的⼀端叫队头,前头后尾⼆、单选题2-1.若⽤⼤⼩为6的数组来实现循环队列,且当前front和rear的值分别为0和4。

当从队列中删除两个元素,再加⼊两个两个元素后,front和rear的值分别为多少:A.2和0B.2和2C.2和4D.2和6解析:初始化创建空队列时,令front=rear=0,每当插⼊新的队列尾元素时,rear增1,每当删除⼀个队列⾸元素时,front增1。

第三章 栈与队列 习题及答案

第三章 栈与队列 习题及答案

第三章栈与队列习题及答案第三章栈与队列习题及答案一、基础知识题3.1 设将整数1,2,3,4依次进栈,但只要出栈时栈非空,则可将出栈操作按任何次序夹入其中,请回答下述问题:(1)若入、出栈次序为Push(1), Pop(),Push(2),Push(3), Pop(), Pop( ),Push(4), Pop( ),则出栈的数字序列为何(这里Push(i)表示i进栈,Pop( )表示出栈)?(2) 能否得到出栈序列1423和1432?并说明为什么不能得到或者如何得到。

(3)请分析 1,2 ,3 ,4 的24种排列中,哪些序列是可以通过相应的入出栈操作得到的。

3.2 链栈中为何不设置头结点?答:链栈不需要在头部附加头结点,因为栈都是在头部进行操作的,如果加了头结点,等于要对头结点之后的结点进行操作,反而使算法更复杂,所以只要有链表的头指针就可以了。

3.3 循环队列的优点是什么? 如何判别它的空和满?答:循环队列的优点是:它可以克服顺序队列的\假上溢\现象,能够使存储队列的向量空间得到充分的利用。

判别循环队列的\空\或\满\不能以头尾指针是否相等来确定,一般是通过以下几种方法:一是另设一布尔变量来区别队列的空和满。

二是少用一个元素的空间。

每次入队前测试入队后头尾指针是否会重合,如果会重合就认为队列已满。

三是设置一计数器记录队列中元素总数,不仅可判别空或满,还可以得到队列中元素的个数。

3.4 设长度为n的链队用单循环链表表示,若设头指针,则入队出队操作的时间为何? 若只设尾指针呢?答:当只设头指针时,出队的时间为1,而入队的时间需要n,因为每次入队均需从头指针开始查找,找到最后一个元素时方可进行入队操作。

若只设尾指针,则出入队时间均为1。

因为是循环链表,尾指针所指的下一个元素就是头指针所指元素,所以出队时不需要遍历整个队列。

3.5 指出下述程序段的功能是什么? (1) void Demo1(SeqStack *S){ int i;arr[64] ; n=0 ; while ( StackEmpty(S)) arr[n++]=Pop(S); for (i=0, i< n; i++) Push(S, arr[i]); } //Demo1(2) SeqStack S1, S2, tmp; DataType x; ...//假设栈tmp和S2已做过初始化while ( ! StackEmpty (&S1)) { x=Pop(&S1) ; Push(&tmp,x); } while ( ! StackEmpty (&tmp) ) { x=Pop( &tmp); Push( &S1,x); Push( &S2, x); }(3) void Demo2( SeqStack *S, int m) { // 设DataType 为int 型 SeqStack T; int i; InitStack (&T); while (! StackEmpty( S)) if(( i=Pop(S)) !=m) Push( &T,i); while (! StackEmpty( &T)) { i=Pop(&T); Push(S,i); } }(4)void Demo3( CirQueue *Q) { // 设DataType 为int 型 int x; SeqStack S; InitStack( &S); while (! QueueEmpty( Q )) {x=DeQueue( Q); Push( &S,x);} while (! StackEmpty( &s)) { x=Pop(&S); EnQueue( Q,x );} }// Demo3(5) CirQueue Q1, Q2; // 设DataType 为int 型 int x, i , m = 0; ... //设Q1已有内容, Q2已初始化过 while ( ! QueueEmpty( &Q1) ){ x=DeQueue( &Q1 ) ; EnQueue(&Q2, x); m++;} for (i=0; i< n; i++){ x=DeQueue(&Q2) ; EnQueue( &Q1, x) ; EnQueue( &Q2, x);}二、算法设计题3.6 回文是指正读反读均相同的字符序列,如\和\均是回文,但\不是回文。

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

1-1通过对堆栈S操作:Push(S,1), Push(S,2), Pop(S), Push(S,3), Pop(S), Pop(S)。

输出得序列为:123。

(2分)T F作者: DS课程组单位: 浙江大学1-2在用数组表示得循环队列中,front值一定小于等于rear值。

(1分)T F作者: DS课程组单位: 浙江大学1-3若一个栈得输入序列为{1, 2, 3, 4, 5},则不可能得到{3, 4, 1, 2, 5}这样得出栈序列。

(2分)T F作者: 徐镜春单位: 浙江大学1-4If keys are pushed onto a stack in the order {1, 2, 3, 4, 5}, then it is impossible to obtain the output sequence {3, 4, 1, 2, 5}、(2分)T F作者: 徐镜春单位: 浙江大学1-5所谓“循环队列”就是指用单向循环链表或者循环数组表示得队列。

(1分)T F作者: DS课程组单位: 浙江大学1-6An algorithm to check for balancing symbols in an expression uses a stack to store the symbols、(1分)T F2-1设栈S与队列Q得初始状态均为空,元素a、b、c、d、e、f、g依次进入栈S。

若每个元素出栈后立即进入队列Q,且7个元素出队得顺序就是b、d、c、f、e、a、g,则栈S得容量至少就是: (2分)1. 12. 23. 34. 4作者: DS课程组2-2若元素a、b、c、d、e、f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈工作,则不可能得到得出栈序列就是?(2分)1. b c a e f d2. c b d a e f3. d c e b f a4. a f e d c b作者: DS课程组单位: 浙江大学2-3设一个栈得输入序列就是1、2、3、4、5,则下列序列中,就是栈得合法输出序列得就是?(2分)1. 3 2 1 5 42. 5 1 2 3 43. 4 5 1 3 24. 4 3 1 2 51.PPPOOOPPOPPOOO2.POPOPOPPOPPOOO3.POPPOOPPOPOOPO4.POPPOOPPOPPOOO作者: DS课程组单位: 浙江大学2-5设一个堆栈得入栈顺序就是1、2、3、4、5。

若第一个出栈得元素就是4,则最后一个出栈得元素必定就是: (2分)1. 12. 33. 54.1或者5作者: DS课程组2-6为解决计算机主机与打印机之间速度不匹配问题,通常设置一个打印数据缓冲区,主机将要输出得数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。

该缓冲区得逻辑结构应该就是?(1分)1.堆栈2.队列3.树4.图作者: DS课程组单位: 浙江大学2-7某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作。

若元素a、b、c、d、e依次入此队列后再进行出队操作,则不可能得到得出队序列就是: (2分)1. b a c d e2. d b a c e3. e c b a d4. d b c a e1.2与02.2与23.2与44.2与6作者: DS课程组单位: 浙江大学2-10以下不就是栈得基本运算得就是( )。

(2分)1.删除栈顶元素2.删除栈底元素3.判断栈就是否为空4.将栈置为空栈作者: 严冰单位: 浙江大学城市学院2-11在一个链队列中,front与rear分别为头指针与尾指针,则插入一个结点s得操作为( )。

(2分)1.front=front->next2.s->next=rear;rear=s3.rear->next=s;rear=s;4.s->next=front;front=s;作者: 杨斌单位: 枣庄学院2-12依次在初始为空得队列中插入元素a,b,c,d以后,紧接着做了两次删除操作,此时得队头元素就是( )。

(2分)1. a2. b3. c4. d作者: 杨斌单位: 枣庄学院2-13当用大小为N得数组存储顺序循环队列时,该队列得最大长度为( )。

(2分)1.N2.N-13.N+14.N+2作者: 杨斌单位: 枣庄学院2-14判断一个循环队列QU(最多元素为MaxSize)为空得条件就是()。

(2分)1.QU、front == QU、rear2.QU、front != QU、rear3.QU、front == (QU、rear + 1) % MaxSize4.QU、front != (QU、rear + 1) % MaxSize作者: 严冰单位: 浙江大学城市学院2-15(neuDS)在队列中存取数据元素得原则就是( )。

(2分)1.先进先出2.先进后出3.后进先出4.没有限制作者: 徐婉珍单位: 浙江大学2-16循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别就是front与rear,则当前队列中得元素个数就是( )。

(2分)1.(rear-front+m)%m2.rear-front3.rear-front-14.rear-front作者: 杨斌单位: 枣庄学院2-17若以1234作为双端队列得输入序列,则既不能由输入受限得双端队列得到,也不能由输出受限得双端队列得到得就是( )。

(2分)1.12342.41323.42314.4213作者: 杨斌单位: 枣庄学院2-18(neuDS)在链栈中,进行出栈操作时( )。

(2分)1.需要判断栈就是否满2.需要判断栈就是否为空3.需要判断栈元素得类型4.无需对栈作任何操作作者: 徐婉珍单位: 广东东软学院2-19(neuDS)在栈中存取数据得原则就是( )。

(2分)1.先进先出2.先进后出3.后进后出4.没有限制作者: 徐婉珍单位: 广东东软学院2-20链式栈与顺序栈相比,一个比较明显得优点就是( )。

(2分)1.插入操作更加方便2.通常不会出现栈满得情况3.不会出现栈空得情况4.删除操作更加方便作者: 严冰单位: 浙江大学城市学院2-21若(a-b)*(c+d)就是中序表达式,则其后序表达式就是( )。

(2分)1.abcd+*-2.ab-cd+*3.ab-*cd+4.a-bcd+*1.PPPOOO2.POPOPO3.POPPOO4.PPOOPO作者: DS课程组单位: 浙江大学2-23现有队列Q 与栈S,初始时Q 中得元素依次就是{ 1, 2, 3, 4, 5, 6 }(1在队头),S 为空。

若允许下列3种操作:(1)出队并输出出队元素;(2)出队并将出队元素入栈;(3)出栈并输出出栈元素,则不能得到得输出序列就是:(2分)1.1, 2, 5, 6, 4, 32.2, 3, 4, 5, 6, 13.3, 4, 5, 6, 1, 24.6, 5, 4, 3, 2, 1作者: 考研真题单位: 浙江大学2-24Supposed that a, b, c, d, e and f are pushed onto a stack in the given order、Assume that pushing and popping can be done alternatively, but no consecutive three poppings are allowed、Then among the following, the impossible popping sequence is: (2分)1. b c a e f d2. c b d a e f3. d c e b f a4. a f e d c b作者: DS课程组单位: 浙江大学2-25Given an empty stack S and an empty queue Q、Push elements {1, 2, 3, 4, 5, 6, 7} one by one onto S、If each element that is popped from S is enqueued onto Q immediately, and if the dequeue sequence is {4, 5, 7, 6, 3, 2, 1}, then the minimum size of S must be: (2分)1. 22. 33. 44. 5作者: Martin Ester单位: 浙江大学2-26Given the pushing sequence of a stack as {6, 5, 4, 3, 2, 1}、Among the following, the impossible popping sequence is: (2分)1. 2 3 4 1 5 62. 3 4 6 5 2 13. 5 4 3 6 1 24. 4 5 3 1 2 6作者: DS课程组单位: 浙江大学2-27下列关于栈得叙述中,错误得就是:(2分)1.采用非递归方式重写递归程序时必须使用栈2.函数调用时,系统要用栈保存必要得信息3.只要确定了入栈次序,即可确定出栈次序4.栈就是一种受限得线性表,允许在其两端进行操作1.仅12.仅1、2、33.仅1、3、44.仅2、3、42 李文超61、0 F(2、0) F(1、0) T(2、0) T(2、0) F(1、0) T(1、0) C(2、0)D(2、0) A(2、0) D(2、0) D(2、0) B(1、0) D(2、0) A(2、0) B(2、0) C(2、0) C(2、0) B(2、0) A(2、0) A(2、0) A(2、0) C(2、0) B(2、0) B(2、0) B(2、0) B(2、0) C(3、0) A(2、0) C D(2、0) D(2、0) B(2、0) C(2、0)。

相关文档
最新文档