プログラミングにおけるスタックの定義
vgajic/ゲッティ イメージズ
スタックは、最新のコンピューター プログラミングと CPU アーキテクチャで使用される関数呼び出しとパラメーターの配列またはリスト構造です。ビュッフェ レストランやカフェテリアのプレートのスタックと同様に、スタック内の要素は、後入れ先出し、先出し、または LIFO の順序で、スタックの一番上に追加または削除されます。
スタックにデータを追加するプロセスはプッシュと呼ばれ、スタックからデータを取得するプロセスはポップと呼ばれます。これは、スタックの一番上で発生します。スタック ポインターはスタックの範囲を示し、要素がスタックにプッシュまたはポップされると調整されます。
関数が呼び出されると、次の命令のアドレスがスタックにプッシュされます。
関数が終了すると、アドレスは スタック そのアドレスで実行が続行されます。
スタック上のアクション
プログラミング環境に応じて、スタックで実行できる他のアクションがあります。
- Peek: 要素を実際に削除することなく、スタックの最上位の要素を検査できます。
- スワップ: 交換とも呼ばれ、スタックの 2 つの最上位要素の位置が交換され、最初の要素が 2 番目の要素になり、2 番目の要素が最上位になります。
- 複製: 最上位の要素がスタックからポップされ、スタックに 2 回プッシュされて、元の要素の複製が作成されます。
- 回転: ロールとも呼ばれ、順番に回転するスタック内の要素の数を指定します。たとえば、スタックの上位 4 つの要素を回転すると、一番上の要素が 4 番目の位置に移動し、次の 3 つの要素が 1 つ上に移動します。
スタックは次のようにも知られています。 ' 後入れ先出し(LIFO)」。