avatar

232. Implement Queue using Stacks

Level:easy

Topic:StackDesignQueue


Description

Implement a first in first out (FIFO) queue using only two stacks. The implemented queue should support all the functions of a normal queue (push, peek, pop, and empty).

  • Implement the MyQueue class:

    • void push(int x) Pushes element x to the back of the queue.

    • int pop() Removes the element from the front of the queue and returns it.

    • int peek() Returns the element at the front of the queue.

    • boolean empty() Returns true if the queue is empty, false otherwise.

  • Notes:

    • You must use only standard operations of a stack, which means only push to top, peek/pop from top, size, and is empty operations are valid.

    • Depending on your language, the stack may not be supported natively. You may simulate a stack using a list or deque (double-ended queue) as long as you use only a stack's standard operations.

實作Queue, Queue會有poppushpeekempty以上四種function。

About Queue

Queue是一種很常見的陣列資料結構,其特性為先進先出(FIFO,First In First Out)。

Solution

var MyQueue = function() { this.data = []; }; /** * @param {number} x * @return {void} */ MyQueue.prototype.push = function(x) { this.data.push(x); }; /** * @return {number} */ MyQueue.prototype.pop = function() { return this.data.shift(); }; /** * @return {number} */ MyQueue.prototype.peek = function() { return this.data.at(); }; /** * @return {boolean} */ MyQueue.prototype.empty = function() { return this.data.length === 0; };