数据结构摘星题库800题笔记 第3章栈、队列和数组

第3章栈、队列和数组

§3.1 栈

考点 1 栈的概念

题组闯关

1.一个栈的入栈顺序序列是 ABCDE,则不可能的出栈序列是 ( )。
A. ABCDE
B. EDCBA
C. DECBA
D. DCEAB

2.已知操作符包括 “+”“-”“×”“/”“(” 和 “)”。将中缀表达式a+b−a×((c+d)/e−f)+g转换为后缀表达式ab+acd+e/f−×−g+时,用栈来存放暂时还不能确定运算次序的操作符。若栈初始时为空,则转换过程中同时保存在栈中的操作符的最大个数是 ( )。
A. 5
B. 7
C. 9
D. 11

3.若已知一个栈的进栈序列是1,2,3,⋯,n,其输出序列为p1​,p2​,p3​,⋯,pn​。若p1​=3,则p2​为 ( )。
A. 可能是 2
B. 一定是 2
C. 可能是 1
D. 一定是 1

4.一个栈的入栈序列为1,2,3,4,⋯,n,其出栈序列是p1​,p2​,p3​,⋯,pn​。若p2​=3,则p3​可能取值的个数是 ( )。
A. n−3
B. n−2
C. n−1
D. 无法确定

5.一个栈的输入序列为1,2,3,4,⋯,n,若输出序列的第一个元素是n,输出第i个元素是 ( )。
A. 不确定
B. n−1
C. i
D. n−i+1

6.设栈S和队列Q的初始状态均为空,元素a,b,c,d,e,f,g依次进入栈S。若每个元素出栈后立即进入队列Q,且 7 个元素出列的顺序是b,d,c,e,g,f,a,则栈S的容量至少是 ( )。
A. 1
B. 2
C. 3
D. 4

7.由两个栈共享一个向量空间的好处是 ( )。
A. 减少存取时间,降低上溢发生的几率
B. 节省存储空间,降低上溢发生的几率
C. 减少存取时间,降低下溢发生的几率
D. 节省存储空间,降低下溢发生的几率

真题实战(题组闯关对应真题)

1.若元素a,b,c,d,e,f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈工作,则不可能得到的出栈序列是 ( )。【北京化工大学 2019 年】
A. dcebfa
B. cbdaef
C. bdceaf
D. afedcb

2.给定有限符号集S,in 和 out 均为S中所有元素的任意排列。对于初始为空的栈ST,下列叙述中,正确的是 ( )。【全国统考 2022 年】
A. 若 in 是ST的入栈序列,则不能判断 out 是否为其可能的出栈序列
B. 若 out 是ST的出栈序列,则不能判断 in 是否为其可能的入栈序列
C. 若 in 是ST的入栈序列,out 是对应 in 的出栈序列,则 in 与 out 一定不同
D. 若 in 是ST的入栈序列,out 是对应 in 的出栈序列,则 in 与 out 可能互为倒序

考点 2 顺序栈

题组闯关

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

真题实战

1.若一个栈以向量V[1..n]存储,初始栈顶指针top为n+1,则下面x入栈的正确操作是 ( )。【中国科学院大学 2015 年】
A. top=top+1;V[top]=x
B. V[top]=x;top=top+1
C. top=top−1;V[top]=x
D. V[top]=x;top=top−1

2.若双栈共享空间S[0..n−1],初始时top1=−1,top2=n,则判栈满为真的条件是 ( )。【北京邮电大学 2016 年】
A. top1==top2
B. top1−top2==1
C. top1+top2==n
D. top2−top1==1

3.若有一线stack[0..n−1],初始时栈顶指针top为n,则以下元素x进栈的正确操作是 ( )。【武汉大学 2015 年】
A. top++;stack[top]=x;
B. stack[top]=x;top++;
C. top−−;stack[top]=x;
D. stack[top]=x;top−−;

考点 3 链栈

题组闯关

向一个栈顶指针为top的链栈中插入一个x节点,则执行 ( )。
A. top−>next=x;
B. x−>next=top−>next;top−>next=x;
C. x−>next=top;top=x;
D. x−>next=top;top=top−>next;

真题实战

链式栈与顺序栈相比,一个比较明显的优点是 ( )。【宁波大学 2012 年】
A. 插入操作更加方便
B. 通常不会出现栈满的情况
C. 不会出现栈空的情况
D. 删除操作更加方便

考点 4 栈的应用

题组闯关

1.以下哪个选项中不会应用到栈 ( )。
A. 递归
B. 图的广度优先搜索
C. 表达式求值
D. 树的深度优先遍历

2.表达式3×2∗(4+2×2−6×3)−5,求值过程中当扫描到 6 时,对象栈和算符栈为 ( ),其中 ^ 为乘幂。
A. 3,2,8;×−
B. 3,2,4,2,2;×+×−
C. 3,2,4,2,2;×(+×−
D. 3,2,8;×(−

3.有函数intfunc(inti)的实现如下:

int func(int i)
{
    if (i > 1)
        return i * func(i - 1);
    else
        return 1;
}

请问函数调用func(5)的返回值是多少 ( )。
A. 5
B. 15
C. 20
D. 120
4. 一个问题的递归算法求解和其相对应的非递归算法求解相比 ( )。
A. 递归算法通常高效一些
B. 非递归算法通常高效一些
C. 两者相同
D. 无法比较
5. 当执行函数时,其局部变量的存储一般采用 ( ) 进行存储。
A. 树
B.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丰锋ff

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值