13. Stackを使ってQueueを作る

JavaScriptAlgorithmByteDance
お役に立つのか?

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

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]

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

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

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

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

補足

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

15分間以内で解いてみて

ディスカス(48)