スタック
スタックはコーディング面接において頻繁に活用されるデータ構造の一つです。スタックは「Last-In-First-Out」(LIFO)の原則に基づくデータ構造で、最後に追加された要素が最初に削除されます。この特性は、一連の要素を逆順に処理する必要がある場合や、状態を一時的に保存して後で利用する場合に有用です。現実の世界では積み上がった皿をイメージすると良いと思います。皿は一番上にしか追加できませんし、一番上からしか取る事はできません。
特徴
- 要素は「上」に積み重ねられ、「上」から削除されます。「Last-In-First-Out」(LIFO)
- 最後に追加された要素にのみアクセスできます(これを「
peek
/top
」と呼びます)
- 新しい要素の追加(
push
)と既存の要素の削除(pop
)は共に高速です(の時間計算量)
- 動的配列(Dynamic Array)や連結リスト(Linked List)などを活用して実装可能です。