78 lines
2.3 KiB
Java
78 lines
2.3 KiB
Java
|
//实现一个MyQueue类,该类用两个栈来实现一个队列。 示例: MyQueue queue = new MyQueue(); queue.push(1);
|
|||
|
//queue.push(2); queue.peek(); // 返回 1 queue.pop(); // 返回 1 queue.empty(); // 返
|
|||
|
//回 false 说明: 你只能使用标准的栈操作 -- 也就是只有 push to top, peek/pop from top, size 和 is empty
|
|||
|
// 操作是合法的。 你所使用的语言也许不支持栈。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。 假设所有操作都是有效的
|
|||
|
//(例如,一个空的队列不会调用 pop 或者 peek 操作)。 Related Topics 栈
|
|||
|
// 👍 35 👎 0
|
|||
|
|
|||
|
package leetcode.editor.cn;
|
|||
|
|
|||
|
import java.util.Stack;
|
|||
|
|
|||
|
//面试题 03.04:化栈为队
|
|||
|
public class ImplementQueueUsingStacksLcci {
|
|||
|
public static void main(String[] args) {
|
|||
|
//测试代码
|
|||
|
// Solution solution = new ImplementQueueUsingStacksLcci().new Solution();
|
|||
|
}
|
|||
|
|
|||
|
//力扣代码
|
|||
|
//leetcode submit region begin(Prohibit modification and deletion)
|
|||
|
class MyQueue {
|
|||
|
Stack<Integer> stack1;
|
|||
|
Stack<Integer> stack2;
|
|||
|
|
|||
|
/**
|
|||
|
* Initialize your data structure here.
|
|||
|
*/
|
|||
|
public MyQueue() {
|
|||
|
stack1 = new Stack<>();
|
|||
|
stack2 = new Stack<>();
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Push element x to the back of queue.
|
|||
|
*/
|
|||
|
public void push(int x) {
|
|||
|
while (!stack1.empty()) {
|
|||
|
stack2.push(stack1.pop());
|
|||
|
}
|
|||
|
stack1.push(x);
|
|||
|
while (!stack2.isEmpty()) {
|
|||
|
stack1.push(stack2.pop());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Removes the element from in front of queue and returns that element.
|
|||
|
*/
|
|||
|
public int pop() {
|
|||
|
return stack1.pop();
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Get the front element.
|
|||
|
*/
|
|||
|
public int peek() {
|
|||
|
return stack1.peek();
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Returns whether the queue is empty.
|
|||
|
*/
|
|||
|
public boolean empty() {
|
|||
|
return stack1.empty();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Your MyQueue object will be instantiated and called as such:
|
|||
|
* MyQueue obj = new MyQueue();
|
|||
|
* obj.push(x);
|
|||
|
* int param_2 = obj.pop();
|
|||
|
* int param_3 = obj.peek();
|
|||
|
* boolean param_4 = obj.empty();
|
|||
|
*/
|
|||
|
//leetcode submit region end(Prohibit modification and deletion)
|
|||
|
|
|||
|
}
|