プログラミングにおけるスタックの定義

若い男のプログラミング

vgajic/ゲッティ イメージズ





スタックは、最新のコンピューター プログラミングと CPU アーキテクチャで使用される関数呼び出しとパラメーターの配列またはリスト構造です。ビュッフェ レストランやカフェテリアのプレートのスタックと同様に、スタック内の要素は、後入れ先出し、先出し、または LIFO の順序で、スタックの一番上に追加または削除されます。

スタックにデータを追加するプロセスはプッシュと呼ばれ、スタックからデータを取得するプロセスはポップと呼ばれます。これは、スタックの一番上で発生します。スタック ポインターはスタックの範囲を示し、要素がスタックにプッシュまたはポップされると調整されます。



関数が呼び出されると、次の命令のアドレスがスタックにプッシュされます。

関数が終了すると、アドレスは スタック そのアドレスで実行が続行されます。



スタック上のアクション

プログラミング環境に応じて、スタックで実行できる他のアクションがあります。

  • Peek: 要素を実際に削除することなく、スタックの最上位の要素を検査できます。
  • スワップ: 交換とも呼ばれ、スタックの 2 つの最上位要素の位置が交換され、最初の要素が 2 番目の要素になり、2 番目の要素が最上位になります。
  • 複製: 最上位の要素がスタックからポップされ、スタックに 2 回プッシュされて、元の要素の複製が作成されます。
  • 回転: ロールとも呼ばれ、順番に回転するスタック内の要素の数を指定します。たとえば、スタックの上位 4 つの要素を回転すると、一番上の要素が 4 番目の位置に移動し、次の 3 つの要素が 1 つ上に移動します。

スタックは次のようにも知られています。 ' 後入れ先出し(LIFO)」。

例: C および C++変数 ローカルで (または自動で) 宣言されたものは、スタックに格納されます。