本文仅供个人记录和复习,不用于其他用途
用两个栈实现队列
用两个栈来实现一个队列,完成队列的Push
和Pop
操作。 队列中的元素为int
类型。
|
|
stack1
用于入队,stack2
用于出队。我们知道队列是先进先出,如果要入队的话,直接就将元素加入stack1
即可。出队时我们首先要判断stack2
是否为空,不为空就直接出栈,为空就需要我们将stack1
的所有元素弹出,并且全部加入到stack2
中,然后只需要弹出stack2
的栈顶即可。
当然,如果需要使用两个队列实现一个栈也很简单,入栈就将元素加入队列1,出栈首先判断队列A中的元素个数是否为1,等于1就出队列,否则将队列1的元素放入队列2,一直到队列1只剩1个元素,然后将这个元素出队,再把队列2的元素放入到队列1。由于栈是先进后出,所以只能够先将队列中的元素先全部出队,获取最后一个元素。