剑指思路及梳理——两个栈实现一队列(牛客可编)

题:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

析:

栈-后进先出(LIFO-last in first out),像杯子。栈底元素无法直接删除,需要将上方所有元素出栈。A=[1,2,3] 和空栈 B = []可倒序A=[] ,B=[3,2,1]。

队列-先进先出(FIFO-first in first out),像管子。

两个杯子如何变成一根管子?

B顶端值3出栈相当于A底端值出栈,出栈结束B值为空。

剑指思路及梳理——两个栈实现一队列(牛客可编)

解:

py

剑指思路及梳理——两个栈实现一队列(牛客可编)

c#

剑指思路及梳理——两个栈实现一队列(牛客可编)