用队列实现栈
请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)
实现 MyStack 类:
void push(int x)
将元素 x 压入栈顶int pop()
移除并返回栈顶元素。int top()
返回栈顶元素。boolean empty()
如果栈是空的,返回 true ;否则,返回 false
思路:
代码题解:
class MyStack {
// 创建队列
Queue<Integer> q1;
Queue<Integer> q2;
// 初始化
public MyStack() {
q1 = new LinkedList();
q2 = new LinkedList();
}
//压栈
public void push(int x) {
if(!q1.isEmpty()){
q1.offer(x);//压栈
}else if(!q2.isEmpty()){
q2.offer(x);
}else{
q1.offer(x);
}
}
//出栈
public int pop() {
if