首页 > 试题广场 >

假设栈S和队列Q的初始状态为空,元素a、b、c、d、e、f依

[单选题]
假设栈S和队列Q的初始状态为空,元素a、b、c、d、e、f依次通过S和Q,即每一个元素必须先进栈,之后再出栈进入队列。若这6个元素出队的顺序是b、d、c、f、e、a,则栈S的容量至少应该为______。
  • 3
  • 4
  • 5
  • 6
推荐
答案:A
队列是先进先出的,出对顺序等于入队顺序,可以吧队列忽略,等价于问题
若这6个元素出队的顺序是b、d、c、f、e、a,则栈S的容量至少应该为______。
b出栈前栈中有元素a,b此时栈大小为2
d出栈前栈中有元素a,c,d此时栈大小为3
c出栈前栈中有元素a,c此时栈大小为2
f出栈前栈中有元素a,e,f此时栈大小为3
e出栈前栈中有元素a,e此时栈大小为2
a出栈前栈中有元素a此时栈大小为1

所以栈容量至少为3
编辑于 2015-02-04 15:36:07 回复(1)
显然
发表于 2018-10-24 15:27:51 回复(0)
A
发表于 2015-04-02 16:55:46 回复(0)
画一个栈和一个队列的示意图就明白了,首先a,b依次入栈,将b弹出栈,b入队列,接下来c,d依次入栈,然后c,d依次出栈并进入队列,接下来e,f依次入栈,然后将栈中的f,e,a依次弹出栈并入队列,这个过程中栈中元素最多时有3个,所以栈的长度至少为3.
编辑于 2016-10-02 21:13:26 回复(0)
出队序列=入队序列=出栈序列
发表于 2018-06-05 20:45:45 回复(0)
确定出栈次序,然后往回推。
发表于 2022-04-05 16:31:12 回复(0)