108. QueueでStack を実装する

少し工夫が必要  - accepted / - tried

この問題は 13. Stackを使ってQueueを作るの逆バージョン

JavaScriptの配列はStackとしても、Queueとしても使えます。

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

arr.push(5) // arrは [1, 2, 3, 4, 5]
arr.pop() // 5, arrは [1, 2, 3, 4]

上記はStackとしての使用例、以下はQueueの使用例です。

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

arr.push(5) // arrは [1, 2, 3, 4, 5]
arr.shift() // 1, arrは [2, 3, 4, 5]

仮に以下のようなQueueがあり、

class Queue {
  enqueue(element) { /* 要素の追加、Array.prototype.pushに近い */ }
  peek() { /* ヘッド要素を取得*/ }
  dequeue() { /* ヘッド要素を取り除く、 Array.prototype.popに近い */ }
  size() { /* 要素の数 */ }
}

Queueだけを使ってStackを実装してください。

class Stack {
  push(element) { /* 要素を追加 */ }
  peek() { /* トップ要素を取得 */ }
  pop() { /* トップ要素を取り除く */}
  size() { /* 要素の数 */}
}

補足

Queueだけ使って、Arrayは使用しないでください。

考えを喋りながら。

(1)
(33)