一、用两个栈来实现队列
方法:
入队都在Stack1中操作,出队都在Stack2中进行,入队和出队的规则如下:
入队:直接把元素压入Stack1中。
出队:如果Stack2不为空,直接弹出stack2的元素,如果stack2为空,将stack1中所有元素倒入stack2,然后弹出stack2栈顶元素。如果两个队列都空,队列为空队,无法出栈。
|
|
|
|
##二、两个队列实现栈
方案:
- 入栈:两个队列那个不为空,就把元素入队到那个队列中;如果都为空,则任选一个入队,假设这个队列为queue1
出栈:把不为空的队列去除最后一个元素外的所有元素移动到另一个队列中,然后出队最后一个元素。
下面是实现代码:
|
|
|
|