スタック
Stack
すたっく
他の資格での定義
後に入れたデータを先に取り出すLIFO(Last In First Out)方式のデータ構造。関数呼び出しの管理やWebブラウザの「戻る」ボタンの履歴管理などに利用される。
LIFO(Last In First Out)方式でデータの出し入れを行うデータ構造。プッシュ(追加)とポップ(取出し)の2つの操作を持つ。関数呼出しの管理、式の評価、Undo機能の実装などに利用される。
後入れ先出し(LIFO)のデータ構造。関数の呼び出し時にリターンアドレス、引数、ローカル変数を格納するコールスタックとして使用される。組込みシステムではスタックサイズの管理が重要で、スタックオーバーフローは深刻な不具合の原因となる。
関連キーワードの用語
同じ型のデータを連続したメモリ領域に格納するデータ構造。添字(インデックス)を用いて各要素に直接アクセスできるため、参照がO(1)で高速。挿入・削除はデータの移動が必要なためO(n)。
各要素がデータとポインタ(次の要素への参照)を持ち、鎖状に連結されたデータ構造。要素の挿入・削除がポインタの変更のみで可能だが、特定要素の参照には先頭から辿る必要がある。
各要素が前方と後方の両方へのポインタを持つリスト構造。前後どちらの方向にも辿れるため、要素の削除が単方向リストより効率的。ただしポインタが2つ必要なためメモリ使用量が増える。
データの挿入を末尾、取り出しを先頭から行うデータ構造。FIFO(First In, First Out:先入れ先出し)の原則に従う。タスクの待ち行列管理やプリンタのジョブ管理に使用される。
各ノードが最大2つの子ノードを持つ木構造。左の子と右の子に分かれる。2分探索木、ヒープ、式木など多くの応用がある。探索や整列の効率的な実装に使われる。
左の子ノードの値が親より小さく、右の子ノードの値が親より大きいという条件を満たす2分木。探索・挿入・削除の平均計算量がO(log n)で効率的。バランスが崩れるとO(n)に悪化する。