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()
     */
  • 相关阅读:
    gcd
    Kuglarz
    三分题解
    杜教筛
    第一组dp解题报告
    dp总结1
    cf-BitwiseXor
    6.6总结
    图论总结
    CF1309总结
  • 原文地址:https://www.cnblogs.com/strivegys/p/13186651.html
Copyright © 2011-2022 走看看