スキップしてメイン コンテンツに移動

配列とスタック:push/pop

配列とスタック:push/pop

配列メソッドの基礎

JavaScript初心者にとって、配列はデータをまとめて扱う基本的なコレクションです。配列メソッドは、配列に対して追加・削除・検索・変換などの操作を簡単に行えるように設計されています。代表的なメソッドとして pushpopshiftunshift があります。これらはそれぞれ末尾への追加・削除、先頭への追加・削除を行うため、スタックやキューといったデータ構造を手軽に実装できます。

配列の push は末尾に要素を追加し、追加後の配列長を返します。逆に pop は末尾の要素を削除し、その要素を返します。shift は先頭の要素を削除し、unshift は先頭に要素を追加します。これらのメソッドは配列を直接変更するため、操作のたびに新しい配列を作る必要がありません。

スタックの実装

スタックは「後入れ先出し(LIFO)」のデータ構造です。JavaScriptの配列を使えば、pushpop だけで簡単にスタックを実装できます。以下は最小限のスタッククラスの例です。

class Stack {
  constructor() {
    this.items = [];
  }
  push(item) {
    this.items.push(item);
  }
  pop() {
    return this.items.pop();
  }
  peek() {
    return this.items[this.items.length - 1];
  }
  isEmpty() {
    return this.items.length === 0;
  }
}

このクラスは配列メソッドを内部で利用しており、追加・削除の操作はすべて O(1) で実行されます。スタックはブラウザの履歴管理や再帰処理の実装など、さまざまな場面で活躍します。

キューの操作

キューは「先入れ先出し(FIFO)」のデータ構造です。配列の shiftunshift を組み合わせることで、キューを実装できます。以下は簡易的なキュークラスです。

class Queue {
  constructor() {
    this.items = [];
  }
  enqueue(item) {
    this.items.unshift(item); // 先頭に追加
  }
  dequeue() {
    return this.items.pop(); // 末尾から削除
  }
  peek() {
    return this.items[this.items.length - 1];
  }
  isEmpty() {
    return this.items.length === 0;
  }
}

この実装では、unshift で先頭に要素を追加し、pop で末尾から要素を取り出すことで FIFO を保っています。配列メソッドを活用することで、コレクションの追加・削除を直感的に行えるようになります。

この記事はAIによって作成されました。

コメント