スタック

コンピューティングにおいて、スタックはオブジェクトの集合を格納するために使用されるデータ構造です。個々の項目は、push操作を使用してスタックに追加し、格納できます。オブジェクトは、項目をスタックから削除するpop操作を使用して取り出せます。

オブジェクトをスタックに追加すると、それまでに追加されたすべての項目の上に置かれます。項目を削除するときは、スタックの上または下から削除できます。項目を上から削除するスタックは、「LIFO」(Last In, First Out)スタックと呼ばれます。LIFOスタックは、カードを1枚ずつ山の上に置き、上からカードを引くトランプの山としてイメージできます。「FIFO」(First In, First Out)スタックでは、項目は下から削除されます。FIFOスタックは、商品が自動販売機に入れられた順番で払い出される、自動販売機の列としてイメージできます。

スタックは、コンピュータープログラミングでさまざまな用途に使用されます。たとえばLIFOスタックは、キャッシュから最近使用されたオブジェクトを取り出すために使用できます。FIFOスタックは、入力された順番でデータが取り出されるようにするために使用でき、キューでのデータ処理に利用できます。

スタックはソフトウェアプログラマーによって一般的に使用されますが、プログラムを使用している間、通常はスタックに気付きません。これは、スタックの作成やpush操作、pop操作が、アプリケーションの実行中にバックグラウンドで行われ、ユーザーには見えないためです。ただし、スタックのメモリが不足すると、「スタックオーバーフロー」が発生します。プログラムがこれを正しく処理しない場合、スタックオーバーフローによってエラーメッセージが表示されたり、プログラムがクラッシュしたりすることがあります。

NOTE:「スタック」という用語は、複数のネットワークプロトコルが連携して動作するプロトコルスタックを指すこともあります。各プロトコルは、OSIモデルで定義された7つの異なる層のいずれかに分類されます。

更新日 July 23, 2014 著者: Per C.

quiz知識をテストする

QBE stands for Query by ____?

A
Engine
0%
B
Encapsulation
0%
C
Example
0%
D
Entry
0%
Correct! Incorrect!     View the QBE definition.
More Quizzes →

Tech Terms コンピューター辞書

このページのスタックの定義は、TechTerms.comの著者が執筆したオリジナルの定義です。このページを参照または引用する場合は、定義の直下にある緑色の引用バーをご利用ください。

私たちの目標は、コンピューター用語をわかりやすく説明することです。すべての定義において正確さとわかりやすさを追求しています。フィードバックや新しい技術用語の提案がある場合は、お問い合わせください

Tech Terms ニュースレター

毎日または毎週のニュースレターで技術知識を高めましょう!今すぐ購読して、新しい用語やクイズをメールでお受け取りください。

無料のTechTermsニュースレターに登録する

メールの受信頻度を選択してください

各メールのリンクから、いつでも登録解除または頻度変更ができます。 ご質問はこちらからお問い合わせください。

注意:ニュースレターは英語で配信されます。