/**
* 用队列实现后入先出(LIFO)的栈
* void push(int x) 将元素 x 压入栈顶。
* int pop() 移除并返回栈顶元素。
* int top() 返回栈顶元素。
* boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。
*/
public class MyStack {
/**
* queue1用于存储栈内的元素,queue2作为入栈操作的辅助队列
*/
Queue<Integer> queue1;
Queue<Integer> queue2;
MyStack(){
queue1 = new LinkedList<>();
queue2 = new LinkedList<>();
}
public void push(int x){
queue2.offer(x);
while(queue1 != null)
queue2.offer(queue1.poll());
Queue temp = queue1;
queue1 = queue2;
queue2 = temp;
}
public int pop(){
return queue1.poll();
}
public int top(){
return queue1.peek();
}
public boolean empty(){
return queue1.isEmpty();
}
}
算法通关村—用队列实现栈问题解析
最新推荐文章于 2024-05-23 20:53:42 发布