数据结构(栈,队列常见问题)

栈和队列

常见提问方式的问题:

1、设入栈顺序为A,B,C,D,E.则出栈序列不可能为(B)

A、EDCBA

B、ADEBC

C、ABCDE

D、ABDCE

这种题目都有一种规律:先出来的序号后面一定不能有比他本身小的从小到大排列的序列。

比如

12345

45321 正确

43512(5后面有比它本身小且从小到大排序所以是错的)

​2、若进栈序列为1,2,3.4假定进栈和出栈可以穿插进行,则可能的出栈序列是(D)

A、2,4,1,3

B、3,1,4,2

C、3,4,1,2

D、1,2,3,4

 原则:如果想要后面的先出栈,那么按照1234的入栈顺序,前面的必须已经入栈,比如要让3第一个出栈,那么入栈顺序为:

1入栈,2入栈,3入栈,之后3出栈,这样3就是第一个出栈的,如果想让4接着出栈,那么就4入栈,然后再出栈,然后2出栈,1出栈

最后出栈顺序为:

3421

以此规则分别分析ABCD

A 表示:

1入栈,2入栈,2出栈,3入栈,4入栈,4出栈,后面3必须先出栈,1才能出栈,所以A错

B表示:

1入栈,2入栈,3入栈,3 出栈,后面2必须先出栈,1才能出栈,所以B错

C表示:

1入栈,2入栈,3入栈,3 出栈, 4入栈,4出栈, 后面2必须先出栈,1才能出栈,所以C错

D表示:

1入栈,1出栈, 2入栈,2 出栈, 3入栈,3 出栈, 4入栈,4出栈,正确

​3、队列{a,b,c,d,e}依次入队,允许在其两端进行入队操作,但仅允许在一端进行出队操作,则不可能得到的 出队 序 列 是(C)

A、b, a, c, d, e

B、d, b, a, c, e

C、d, b, c, a, e

D、e, c, b, a, d

根据题目的意思,假设队列的两端依次是P和Q:(Q端删除)

A选项:a从P端先进入队列,然后b从Q端再进入队列,这个时候再执行出队操作,依次为b,a,c,d,e

B选项:a从P端先入队列,

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值