题目
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
思路
前提需了解知识点:
- 栈是先进后出
- 队列是先进先出
题目已经提供了,两个栈,那么我们可以利用栈的特性,对压栈,不做任何操作。但是在出栈的时候。我通过自己定义的第三个栈将栈压到第二个栈即可。
通俗点说:因为压栈我们不做任何工作,利用栈的先进后出。那么我们完全可以,将第一个栈先导出压到第二个栈,通过第二个栈的出栈,不就变成了先进先出?前提要排除中途会加入数据,因为在出栈的时候,需要通过第三个栈对第二个栈进行清空,等第一个栈的数据处理结束之后,再还回去即可。
源代码