思想: 这里需要2个栈来实现,把元素全部放到第一个栈中,再将第一个栈的元素放到第二个栈中,此时栈顶的元素就是我们要出队列的元素,依次下去可以完成操作;
- void push(int x) 将元素 x 推到队列的末尾
- int pop() 从队列的开头移除并返回元素
- int peek() 返回队列开头的元素
- boolean empty() 如果队列为空,返回 true ;否则,返回 fals
importjava.util.Stack; /*** Created with IntelliJ IDEA.* Description:* User: Snk* Date: 2023-02-07* Time: 12:50*/classMyQueue { privateStack<Integer>stack1; privateStack<Integer>stack2; publicMyQueue() { this.stack1=newStack<>(); this.stack2=newStack<>(); } publicvoidpush(intx) { stack1.push(x); } publicintpop() { if(empty()){ return-1; } if (stack2.isEmpty()) { while (!stack1.isEmpty()) { stack2.push(stack1.pop()); } } returnstack2.pop(); } publicintpeek() { if(empty()){ return-1; } if (stack2.isEmpty()) { while (!stack1.isEmpty()) { stack2.push(stack1.pop()); } } returnstack2.peek(); } publicbooleanempty() { returnstack1.isEmpty() &&stack2.isEmpty(); } }