面試題 03.04. 化棧為隊
阿新 • • 發佈:2020-10-13
實現一個MyQueue類,該類用兩個棧來實現一個佇列。
示例:
MyQueue queue = new MyQueue();
queue.push(1);
queue.push(2);
queue.peek(); // 返回 1
queue.pop(); // 返回 1
queue.empty(); // 返回 false
說明:
你只能使用標準的棧操作 -- 也就是隻有 push to top, peek/pop from top, size 和 is empty 操作是合法的。
你所使用的語言也許不支援棧。你可以使用 list 或者 deque(雙端佇列)來模擬一個棧,只要是標準的棧操作即可。
假設所有操作都是有效的 (例如,一個空的佇列不會呼叫 pop 或者 peek 操作)。
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/implement-queue-using-stacks-lcci
/** * Initialize your data structure here. */ var MyQueue = function() { this.dataBase=[]; }; /** * Push element x to the back of queue. * @param {number} x * @return {void} */ MyQueue.prototype.push = function(x) { this.dataBase.push(x); }; /** * Removes the element from in front of queue and returns that element. * @return {number} */ MyQueue.prototype.pop = function() { return this.dataBase.shift(); }; /** * Get the front element. * @return {number} */ MyQueue.prototype.peek = function() {return this.dataBase[0]; }; /** * Returns whether the queue is empty. * @return {boolean} */ MyQueue.prototype.empty = function() { return this.dataBase.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() */