公司品牌网站建设,网站跳转站代码,unix系统安装wordpress,wordpress简体中文版本文章目录 题目方法一#xff1a;单个队列实现 题目 方法一#xff1a;单个队列实现 入栈 和入队正常进行出栈的元素其实就是队列的尾部元素#xff0c;所以直接将尾部元素弹出即可#xff0c;其实就可以将除了最后一个元素的其他元素出队再加入队#xff0c;然后弹出队首元… 文章目录 题目方法一单个队列实现 题目 方法一单个队列实现 入栈 和入队正常进行出栈的元素其实就是队列的尾部元素所以直接将尾部元素弹出即可其实就可以将除了最后一个元素的其他元素出队再加入队然后弹出队首元素就是出栈top操作也是同理需要弹出队尾元素但是需要将对尾元素再重新加入队列队尾避免做pop操作产生歧义
class MyStack {QueueInteger queue ; //复用队列public MyStack() {queue new LinkedList();}public void push(int x) {queue.add(x);}public int pop() {//出栈 其实就是将队列最后一个元素弹出去 所以我们可以将除了最后一个元素的其他元素依次弹出再加入队列queuefz();return queue.poll();}public int top() {queuefz();int result queue.poll();//将队首元素弹出得到栈顶元素queue.add(result);//再将元素加入队尾还原状态return result;}public boolean empty() {return queue.isEmpty();}public void queuefz(){//将队列中的栈顶元素放到队首int size queue.size();for(int i size ; i 1 ; i--){int out queue.poll();queue.add(out);}}}/*** Your MyStack object will be instantiated and called as such:* MyStack obj new MyStack();* obj.push(x);* int param_2 obj.pop();* int param_3 obj.top();* boolean param_4 obj.empty();*/