takahiro_itazuriの公倍数的ブログ

本やWebを通して学習したことをまとめるブログです。最大公約数(つまり、共通部分)的なという表現と対比して、「なるべく包括的にカバーしつつ、更に+αの要素も加えられたらいいな」という意味で公倍数的ブログと名付けました。

【就プロ】スタックとキュー

はじめに

前回「配列とリスト」に引き続き、線形のデータ構造のスタックとキューについて説明します。

スタック

取り出し・挿入・削除をいずれも一番最後の要素のみに限るデータ構造を「スタック」と言います。
このように一番最後の要素に行う操作をLIFO(Last-In-First-Out)と呼ばれます。
取り出し・挿入・削除の操作は$O(1)$で行うことができます。

キュー

挿入は新しい要素を一番最後に加え、取り出し・削除は先頭の要素に行うデータ構造を「キュー」と言います。
このように先に挿入したものから先に取り出し・削除が行われるため、FIFO(First-In-First-Out)と呼ばれます。
取り出し・挿入・削除の操作は$O(1)$で行うことができます。

C++

スタックとキューは、先頭の要素もしくは最後の要素に対して操作を行うため、それらを実装した両端キュークラスdequeがあります。

スタック

スタックに関しては、スタッククラスstackが用意されています。

キュー

キューに関しても、キュークラスqueueが用意されています。