专门做验收报告的网站,网页设计尺寸大小,软件开发文档管理软件,男女激烈做羞羞事网站网站韩剧题目地址#xff1a; 225. 用队列实现栈 - 力扣#xff08;LeetCode#xff09; 难度#xff1a;简单 今天刷用队列实现栈#xff0c;大家有兴趣可以点上看看题目要求#xff0c;试着做一下。
题目#xff1a; 我们直接看题解吧#xff1a; 解题方法#xff1a; 方法…题目地址 225. 用队列实现栈 - 力扣LeetCode 难度简单 今天刷用队列实现栈大家有兴趣可以点上看看题目要求试着做一下。
题目 我们直接看题解吧 解题方法 方法1、利用双队列 方法2、利用单队列 审题目事例提示 解题分析 单队列主要是元素先出队然后在入队实现前后顺序的调转 双队列主要是把主队元素出队放到辅助对然后辅助队在入队主队列 解题思路 单队列 1、入栈操作时首先获得入栈前的元素个数 n然后将元素入队到队列再将队列中的前 n-1个元素即除了最后一个后入队的元素之外的全部元素依次出队并入队到队列尾部此时队列的前端的元素即为后入队的元素且队列的前端和后端分别对应栈顶和栈底。 2、出栈操作只需要移除队列的前端元素并返回即可获得栈顶元素操作只需要获得队列的前端元素并返回即可不移除元素。 3、由于队列用于存储栈内的元素判断栈是否为空时只需要判断队列是否为空即可。 代码实现
class MyStack {QueueInteger queue; public MyStack() {queue new LinkedListInteger();//创建队列对象 }/** Push element x onto stack. */public void push(int x) {int n queue.size();queue.offer(x); //for (int i 0; i n; i) { //前n-1元素出队接着再次入队queue.offer(queue.poll());}}/** Removes the element on top of the stack and returns that element. */public int pop() {return queue.poll(); //出队操作}/** Get the top element. */public int top() {return queue.peek(); //返回栈顶元素}/** Returns whether the stack is empty. */public boolean empty() {return queue.isEmpty(); //判断是否为空}
}