13. Stackを使ってQueueを作る
シェアしよう
少し工夫が必要 - 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は使用しないでください。