美文网首页
栈-E225-用队列实现栈

栈-E225-用队列实现栈

作者: 三次元蚂蚁 | 来源:发表于2019-03-22 11:00 被阅读0次

题目

  • 概述:使用队列实现栈的基本功能:
  1. push(x):将x入栈
  2. pop():将栈顶元素出栈
  3. top():获取栈顶元素
  4. empty():栈为空返回true,反之false

只允许使用队列的标准操作:push(x), pop(),peek(),empty(),size()

假设所给出的操作都是合理的

思路

  • 由于队列和栈不同,它可以操纵两端的元素,可以考虑从这一点入手
  1. push(x): 直接执行队列的push(x)
  2. pop():将队首元素移出并放到队尾,执行该操作(stack.size() - 1)次,这样就使得栈顶的元素暴露出来,然后执行队列的pop()即可
  3. top():在每次push(x)时记录x,那么栈顶元素即为x,因为栈的栈顶和队列的队尾是一致的
  4. empty():和队列的empty()一致

代码

class MyStack {
    private LinkedList<Integer> queue = new LinkedList<>();
    private Integer topValue;
    
    /** Initialize your data structure here. */
    public MyStack() {
        
    }
    
    /** Push element x onto stack. */
    public void push(int x) {
        queue.offer(x);
        topValue = x;
    }
    
    /** Removes the element on top of the stack and returns that element. */
    public int pop() {
        for (int i = 0; i < queue.size() - 1; ++i) {
            topValue = queue.poll();
            queue.offer(topValue);
        }
        return queue.poll();
    }
    
    /** Get the top element. */
    public int top() {
        return topValue;
    }
    
    /** Returns whether the stack is empty. */
    public boolean empty() {
        return queue.isEmpty();
    }
}

相关文章

  • 数据结构——栈和队列

    用数组实现栈和队列 用栈实现队列 用队列实现栈 栈和队列的经典算法题最小间距栈宠物收养所 数组实现栈和队列 用数组...

  • 栈-E225-用队列实现栈

    题目 概述:使用队列实现栈的基本功能: push(x):将x入栈 pop():将栈顶元素出栈 top():获取栈顶...

  • leecode刷题(26)-- 用栈实现队列

    leecode刷题(26)-- 用栈实现队列 用栈实现队列 使用栈实现队列的下列操作: push(x) -- 将一...

  • C语言第七次作业:链表

    707. 设计链表 空指针 空节点 225. 用队列实现栈 链式存储栈 双队列实现栈 232. 用栈实现队列 链式...

  • 栈&队列

    一、栈&队列总结 栈/队列的应用接雨水验证栈序列滑动窗口的最大值 栈/队列的特殊实现用两个栈实现队列用两个队列实现...

  • 队列之-队列实现栈

    一、队列实现栈核心算法概述 之前已经描述过了用栈实现队列的功能,见栈系列之-实现队列,那么同样队列也可以用来实现栈...

  • 38_两个有趣的问题

    关键词:通过栈实现队列、通过队列实现栈 0. 通过栈实现队列 用栈实现队列等价于用后进先出的特性实现先进先出的特性...

  • LeetCode 每日一题 [12] 用队列实现栈

    LeetCode 用队列实现栈 [简单] 使用队列实现栈的下列操作: push(x) -- 元素 x 入栈pop(...

  • LeetCode:栈实现队列&队列实现栈

    225. 用队列实现栈 使用队列实现栈的下列操作:push(x) -- 元素 x 入栈pop() -- 移除栈顶元...

  • Algorithm小白入门 -- 队列和栈

    队列和栈队列实现栈、栈实现队列单调栈单调队列运用栈去重 1. 队列实现栈、栈实现队列 队列是一种先进先出的数据结构...

网友评论

      本文标题:栈-E225-用队列实现栈

      本文链接:https://www.haomeiwen.com/subject/rsllvqtx.html