108. QueueでStack を実装する

JavaScriptAlgorithm

少し工夫が必要  - 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は使用しないでください。

常にもっといい方法を求めよう。