算法打卡Day15_leetcode _232 用栈实现队列

简介: 算法打卡Day15_leetcode _232 用栈实现队列

Leetcode原题

232.用栈实现队列

20200401134307494.png

思路

我们都知道栈是”先入后出”,队列是先入先出。 而题目要求使用2个栈去实现一个队列的特性。那么怎么操作呢。


我们可以定义一个入栈,一个出栈。 添加元素时,我们放入inStack中,但是因为栈的特殊先入后出。比如 1 2 3.入栈以后变为 3 2 1 。这个时候是 反向的,而队列应该是 1 2 3才对。 所以我们在出栈的时候操作。判断outStatck是否有值,若没值,则先将inStack的值出栈添加到outStatck。此时 outStatck内元素则是正向的。

class MyQueue {
    private static Stack<Integer> inStack;
    private static Stack<Integer> outStack;
    public MyQueue() {
          inStack = new Stack();
          outStack= new Stack();
    }
    public void push(int x) {
         inStack.push(x);
    }
    public int pop() {
        if(outStack.isEmpty()){
            in2out();
        }
        return outStack.pop();
    }
    public int peek() {
        if(outStack.isEmpty()){
            in2out();
        }
        return outStack.peek();
    }
    public boolean empty() {
        return inStack.isEmpty() && outStack.isEmpty();
    }
    public void in2out(){
        while (!inStack.isEmpty()){
            outStack.push(inStack.pop());
        }
    }
}

有兴趣的老爷,还可以关注我的公众号【一起收破烂】,回复【006】获取 最新java面试资料以及简历模型120套哦~

目录
打赏
0
0
0
0
1
分享
相关文章
【算法】栈
栈相关算法题,供参考,附有链接地址及板书
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
这篇文章详细介绍了Java虚拟机(JVM)中的垃圾回收机制,包括垃圾的定义、垃圾回收算法、堆内存的逻辑分区、对象的内存分配和回收过程,以及不同垃圾回收器的工作原理和参数设置。
173 4
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
leetcode算法题-有效的括号(简单)
【11月更文挑战第5天】本文介绍了 LeetCode 上“有效的括号”这道题的解法。题目要求判断一个只包含括号字符的字符串是否有效。有效字符串需满足左括号必须用相同类型的右括号闭合,并且左括号必须以正确的顺序闭合。解题思路是使用栈数据结构,遍历字符串时将左括号压入栈中,遇到右括号时检查栈顶元素是否匹配。最后根据栈是否为空来判断字符串中的括号是否有效。示例代码包括 Python 和 Java 版本。
数据结构与算法学习七:栈、数组模拟栈、单链表模拟栈、栈应用实例 实现 综合计算器
栈的基本概念、应用场景以及如何使用数组和单链表模拟栈,并展示了如何利用栈和中缀表达式实现一个综合计算器。
70 1
数据结构与算法学习七:栈、数组模拟栈、单链表模拟栈、栈应用实例 实现 综合计算器
2024重生之回溯数据结构与算法系列学习之栈和队列精题汇总(10)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第3章之IKUN和I原达人之数据结构与算法系列学习栈与队列精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
4月前
|
每日一道算法题(Leetcode 20)
每日一道算法题(Leetcode 20)
45 2
|
4月前
|
数据结构与算法二:栈、前缀、中缀、后缀表达式、中缀表达式转换为后缀表达式
这篇文章讲解了栈的基本概念及其应用,并详细介绍了中缀表达式转换为后缀表达式的算法和实现步骤。
91 3
数据结构与算法学习二、稀疏数组与队列,数组模拟队列,模拟环形队列
这篇文章主要介绍了稀疏数组和队列的概念、应用实例以及如何使用数组模拟队列和环形队列的实现方法。
49 0
数据结构与算法学习二、稀疏数组与队列,数组模拟队列,模拟环形队列
|
4月前
【LeetCode 24】225.用队列实现栈
【LeetCode 24】225.用队列实现栈
23 0
|
4月前
|
【LeetCode 23】232.用栈实现队列
【LeetCode 23】232.用栈实现队列
30 0