zoukankan      html  css  js  c++  java
  • 232. Implement Queue using Stacks

    /**
     * Initialize your data structure here.
     */
    var MyQueue = function() {
        this.stack1 = [];
        this.stack2 = [];
    };
    
    /**
     * Push element x to the back of queue. 
     * @param {number} x
     * @return {void}
     */
    MyQueue.prototype.push = function(x) {
        this.stack1.push(x);
    };
    
    /**
     * Removes the element from in front of queue and returns that element.
     * @return {number}
     */
    MyQueue.prototype.pop = function() {
        this.checkStack();
        return this.stack2.pop();
    };
    
    /**
     * Get the front element.
     * @return {number}
     */
    MyQueue.prototype.peek = function() {
         this.checkStack();
         return this.stack2[this.stack2.length - 1];
    };
    MyQueue.prototype.checkStack = function() {
        if(!this.stack2.length) {
            while(this.stack1.length) {
                this.stack2.push(this.stack1.pop());
            }
        }
    }
    /**
     * Returns whether the queue is empty.
     * @return {boolean}
     */
    MyQueue.prototype.empty = function() {
        return (this.stack2.length == 0 && this.stack1.length == 0);
    };
    
    /** 
     * Your MyQueue object will be instantiated and called as such:
     * var obj = new MyQueue()
     * obj.push(x)
     * var param_2 = obj.pop()
     * var param_3 = obj.peek()
     * var param_4 = obj.empty()
     */
  • 相关阅读:
    又见Alice and Bob
    算法7-6:图的遍历——广度优先搜索
    算法7-5:图的遍历——深度优先搜索
    水池数目
    过河问题
    括号配对问题
    C# 客户端判断是否安装office03、07或WPS
    C# json
    开源cms
    可执行代码(Executable Code)目标代码(object code)
  • 原文地址:https://www.cnblogs.com/strivegys/p/13186651.html
Copyright © 2011-2022 走看看