zoukankan      html  css  js  c++  java
  • 用两个栈实现队列(剑指offer_9)

    题目描述


    用两个栈来实现一个队列,完成队列的Push和Pop操作。

    解题思路


    in栈用来处理入栈(push)操作,out栈用来处理出栈(pop)操作。一个元素进入in栈之后,出栈的顺序被反转。当元素要出栈时,需要先进入out栈,此时元素出栈顺序再一次被反转,因此出栈顺序就和最开始入栈顺序是相同的,先进入的元素先退出,这就是队列的顺序。

    Stack<Integer> in = new Stack<Integer>();
    Stack<Integer> out = new Stack<Integer>();
    
    public void push(int node) {
        in.push(node);
    }
    
    public int pop() throws Exception {
        if (out.isEmpty())
            while (!in.isEmpty())
                out.push(in.pop());
    
        if (out.isEmpty())
            throw new Exception("queue is empty");
    
        return out.pop();
    }
  • 相关阅读:
    winform_webApiSelfHost
    手机访问网站自动跳转到手机版
    Linux常用命令
    css居中
    固定菜单
    BOM操作写法实例
    表格(合并单元格)
    倒计时
    分享到插件
    jquery获得下拉框的值
  • 原文地址:https://www.cnblogs.com/ziytong/p/12091376.html
Copyright © 2011-2022 走看看