JavaScript スタックとキュー
このチュートリアルでは、JavaScript で配列を使用したスタックとキューの実装について説明します。
JavaScript で配列を使用してスタックとキューを実装する
JavaScript の配列リストとリンクリストを使用して、スタックとキューを実装できます。スタックは後入れ先出しの原則で機能します。つまり、スタックに追加された最初の要素は、他のすべての要素を削除した後に削除され、その逆も同様です。キューは先入れ先出しの原則で機能します。つまり、スタックに追加された最初の要素が最初に削除され、その逆も同様です。配列を使用したスタックとキューの実装は、リンクリストと比較して簡単です。これは、使用する事前定義された関数を多数取得できるためです。たとえば、スタックを実装するには、push()
および pop()
関数を使用できます。push()
関数は、スタックまたは配列の最後に要素を追加するために使用され、pop()
関数は、スタックまたは配列の最後から要素を削除するために使用されます。JavaScript で配列を使用してスタックを実装しましょう。以下のコードを参照してください。
var MyStack = [];
MyStack.push(1);
MyStack.push(9);
console.log('Stack before pop', MyStack);
MyStack.pop();
console.log('Stack after pop', MyStack);
出力:
Stack before pop (2) [1, 9]
Stack after pop [1]
上記のコードでは、push()
関数を使用して 1 と 9 の 2つの値をスタックに追加します。出力では、2つの値がスタックに格納されていることがわかります。pop()
関数を使用してスタックから最後の要素を削除しました。出力では、最後の要素がスタックから削除されていることがわかります。length
関数を使用して、スタックのサイズを確認できます。配列の最後に要素を追加するだけで、最後から要素を削除するため、配列を使用したスタック実装のパフォーマンスは非常に高くなります。リンクリストを使用してスタックを実装することもできますが、役立つ事前ビルド関数はありません。それでは、配列、push()
および shift()
関数を使用してキューを実装しましょう。push()
関数は、キューまたは配列の最後に要素を追加するために使用され、shift()
関数は、スタックまたは配列の先頭から要素を削除するために使用されます。以下のコードを参照してください。
var MyQueue = [];
MyQueue.push(1);
MyQueue.push(9);
console.log('Queue before shift', MyQueue);
MyQueue.shift();
console.log('Queue after shift', MyQueue);
出力:
Queue before shift (2) [1, 9]
Queue after shift [9]
上記のコードでは、push()
関数を使用して 1 と 9 の 2つの値をキューに追加します。出力では、2つの値がキューに格納されていることがわかります。shift()
関数を使用してキューから最初の要素を削除しました。出力では、最初の要素がキューから削除されていることがわかります。length
関数を使用して、キューのサイズを確認できます。shift()
関数が最初の要素を削除すると、各要素を配列内で 1 ステップ戻す必要があるため、配列を使用したキュー構築のパフォーマンスは非常に低くなります。したがって、多数の要素を含むキューを実装する場合は、リンクリストを使用してキューを実装する必要があります。