JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptでスタックに要素をプッシュ(Push)する方法

ここでは、いくつかの小さなヘルパー関数を備えた、次のようなJavaScriptのスタッククラスを考えてみましょう。

class Stack {
   constructor(maxSize) {
      // 最大サイズが指定されない場合はデフォルト値を設定
      if (isNaN(maxSize)) {
         maxSize = 10;
      }
      this.maxSize = maxSize;
      // スタックの値を格納する配列を初期化
      this.container = [];
   }

   // クラス開発中に中身を確認するためのメソッド
   display() {
      console.log(this.container);
   }

   // 配列が空かどうかを判定
   isEmpty() {
      return this.container.length === 0;
   }

   // 配列が満杯かどうかを判定
   isFull() {
      return this.container.length >= this.maxSize;
   }
}

ここでisFull関数は、コンテナ配列の長さがmaxSize以上であるかどうかを判定し、その結果を返します。isEmpty関数は、コンテナのサイズが0であるかどうかを確認します。

なお、isFullメソッド内で最大サイズを参照する際は、インスタンスプロパティを指すthis.maxSizeを使用する点に注意してください。

このセクションでは、このクラスにPUSH操作を追加していきます。スタックへ要素をプッシュするとは、スタックのトップ(頂上)に要素を追加することを意味します。ここでは、コンテナ配列の末尾をスタックのトップとみなし、以降のすべての操作をそれを基準に行います。そのため、push関数は以下のように実装できます。

push(element) {
   // スタックが満杯かどうかをチェック
   if (this.isFull()) {
      console.log("Stack Overflow!");
      return;
   }
   this.container.push(element);
}

この関数が正しく動作しているかどうかは、以下のコードで確認できます。

let s = new Stack(2);
s.display();
s.push(10);
s.push(20);
s.push(30);
s.display();

出力

これを実行すると、次の出力が得られます。

[]
Stack Overflow!
[ 10, 20 ]

最大サイズを2に設定したスタックに対して3つの要素をプッシュしたため、3つ目の追加時に「Stack Overflow!」と表示され、それ以上の要素は追加されません。このように、push操作の前に満杯チェックを行うことで、スタックオーバーフローを適切に検知できます。

  1. JavaScriptでキューに要素を追加する(エンキュー)方法

    キューへの要素追加(エンキュー)とは キューに要素を追加すること(エンキュー)とは、コンテナ配列の末尾に新しい要素を加える操作です。本記事では、配列の末尾をキューの「尾部(tail)」として扱い、すべての挿入操作をこの末尾に対して行います。つまり、先入れ先出し(FIFO)の構造において、新しく入ってくる要素は常に列の最後尾へ並ぶことになります。 この考え方に基づけば、enqueue 関数は次のようにシンプルに実装できます。 実装例:enqueue関数 enqueue(element) { // キューが満杯かどうかをチェック if (this.isFull()) {

  2. JavaScriptでスタックを実装する方法【サンプルコード付きで解説】

    スタック(Stack)は、最後に追加した要素が最初に取り出される「LIFO(Last In, First Out)」方式の基本的なデータ構造です。本記事では、JavaScriptを使ってスタックを実装する方法を、ブラウザ上で実際に動作するサンプルコードとともにわかりやすく解説します。 スタックの基本操作 push:スタックの一番上に新しい要素を追加します。 pop:スタックの一番上から要素を取り出して削除します。要素がない場合はアンダーフローとして扱います。 display:スタック内に格納されているすべての要素を表示します。 サンプルコード 以下は、JavaScriptでスタックを実装し