题目描述:
正如标题所述,你需要使用两个栈来实现队列的一些操作。
队列应支持push(element),pop() 和 top(),其中pop是弹出队列中的第一个(最前面的)元素。
pop和top方法都应该返回第一个元素的值。
样例:
比如push(1), pop(), push(2), push(3), top(), pop(),你应该返回1,2和2
Java代码:
public class MyQueue { private Stackstack1; private Stack stack2; boolean isStack1 = true; public MyQueue() { // do initialization if necessary stack1 = new Stack (); stack2 = new Stack (); } public void push(int element) { // write your code here stack1.push(element); } public int pop() { // write your code here while (!stack1.empty()) { stack2.push(stack1.pop()); } int result = stack2.pop(); while (!stack2.empty()) { stack1.push(stack2.pop()); } return result; } public int top() { // write your code here while (!stack1.empty()) { stack2.push(stack1.pop()); } int result = stack2.peek(); while (!stack2.empty()) { stack1.push(stack2.pop()); } return result; } }