用两个盏实现队列Java
时间: 2023-04-04 17:02:52 浏览: 117
可以使用两个栈来实现队列。具体实现方法如下:
1. 定义两个栈stack1和stack2,其中stack1用于入队操作,stack2用于出队操作。
2. 入队操作时,直接将元素压入stack1中。
3. 出队操作时,先判断stack2是否为空,如果不为空,则直接弹出stack2的栈顶元素;如果为空,则将stack1中的所有元素依次弹出并压入stack2中,然后再弹出stack2的栈顶元素即可。
Java代码实现如下:
class MyQueue {
private Stack<Integer> stack1;
private Stack<Integer> stack2;
public MyQueue() {
stack1 = new Stack<>();
stack2 = new Stack<>();
}
public void push(int x) {
stack1.push(x);
}
public int pop() {
if (stack2.isEmpty()) {
while (!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
}
return stack2.pop();
}
public int peek() {
if (stack2.isEmpty()) {
while (!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
}
return stack2.peek();
}
public boolean empty() {
return stack1.isEmpty() && stack2.isEmpty();
}
}
阅读全文