108. 用队列(Queue)实现栈(Stack)

中等难度  -通过 / -执行

该问题是 13. 利用栈(Stack)创建队列(Queue)的反转版本

在JavaScript中,我们可以用Array来充作Stack或者Queue.

const arr = [1, 2, 3, 4]

arr.push(5) // 变为 [1, 2, 3, 4, 5]
arr.pop() // 5, 数组变为 [1, 2, 3, 4]

上述是Stack的用法,以下则是Queue

const arr = [1, 2, 3, 4]

arr.push(5) //  [1, 2, 3, 4, 5]
arr.shift() // 1, 现在数组是 [2, 3, 4, 5]

现在假设你有 Queue

class Queue {
  enqueue(element) { /* 添加元素到Queue,类似于Array.prototype.push */ }
  peek() { /* 获取头元素*/ }
  dequeue() { /* 弹出头元素,类似于Array.prototype.pop */ }
  size() { /* 获取元素数量 */ }
}

请在只使用Queue的情况下,实现如下的Stack。

class Stack {
  push(element) { /* 添加元素到stack */ }
  peek() { /* 获取top 元素 */ }
  pop() { /* 弹出top 元素 */}
  size() { /* 获取元素数量 */}
}

注意

请只使用Queue,不要使用Array。

普通解法但是bugfree胜于奇技淫巧但是各种bug。

(1)
(33)