zoukankan      html  css  js  c++  java
  • 剑指offer[5]——用两个栈实现队列

    题目描述

    用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

    我们先来了解一下什么是队列和栈。

    对队列的理解就像你在排队,排队只能从尾部进去,头部出去,你不能插队,只能按照规则来,遵循先进先出的原则。而栈不一样的是只有一个出入口,进去只能从尾部进去,出去也只能从尾部出去,这个时候你进去的早反而出去的比较晚,遵循先进后出的原则。

    题目的要求很简单,就是利用两个栈实现一个队列。我们就会想用一个栈来存储,另一个栈作为临时利用,就是说执行PUSH函数的时候和栈的PUSH是一样的,直接调用即可。但是POP的话就不太一样,队列是从栈底出去,所以这个时候就要求我们利用另一个栈,把存储栈中的元素依次POP到临时栈中,全部移过去之后再执行POP函数即可实现将栈底的元素弹出,代码如下:

    let arr1 = [];
    let arr2 = [];
    function push(node)
    {
        arr1.push(node);
    }
    function pop()
    {
        for(let i=0; i<arr1.length; i++){
            arr2.push(arr1[arr1.length-i-1]);
        }
        const num = arr2.pop();
        arr1 = [];
        for(let i=0; i<arr2.length; i++){
            arr1.push(arr2[arr2.length-i-1]);
        }
        arr2 = [];
        return num;
    }
    
    我不管,JS天下第一
  • 相关阅读:
    cmake默认变量
    关于字符编码
    cmake 变量
    动态库对外暴露api的方法
    vs2013工程技巧
    大学毕业4年-未来展望(1)-商业研究
    大学毕业4年-未来展望-序
    大学毕业4年-未来展望-序
    大学毕业4年-回顾和总结(3)-投资理财观-图穷而真相现
    大学毕业4年-回顾和总结(3)-投资理财观-图穷而真相现
  • 原文地址:https://www.cnblogs.com/Jacob98/p/12419234.html
Copyright © 2011-2022 走看看