情報科学 › アルゴリズムとデータ構造 › 基本的なデータ構造

スタック

定義 6.1(「基本的なデータ構造」§6)

スタックとは、次の操作をもつ抽象データ型である。値の型を XX、スタックの全体を S\mathcal{S} と書く。

  • empty∈S\mathrm{empty} \in \mathcal{S}(空のスタック)
  • push:S×X→S\mathrm{push} : \mathcal{S} \times X \to \mathcal{S}(積む)
  • pop:S→S\mathrm{pop} : \mathcal{S} \to \mathcal{S}(頂上を取り除く)
  • top:S→X\mathrm{top} : \mathcal{S} \to X(頂上を読む)
  • isEmpty:S→{true,false}\mathrm{isEmpty} : \mathcal{S} \to \{\mathrm{true}, \mathrm{false}\}

これらは任意の S∈SS \in \mathcal{S}、x∈Xx \in X について次の公理を満たす。

isEmpty(empty)=true,isEmpty(push(S,x))=false,top(push(S,x))=x,pop(push(S,x))=S.\begin{aligned} &\mathrm{isEmpty}(\mathrm{empty}) = \mathrm{true}, \qquad \mathrm{isEmpty}(\mathrm{push}(S, x)) = \mathrm{false}, \\ &\mathrm{top}(\mathrm{push}(S, x)) = x, \qquad \mathrm{pop}(\mathrm{push}(S, x)) = S. \end{aligned}

top(empty)\mathrm{top}(\mathrm{empty}) と pop(empty)\mathrm{pop}(\mathrm{empty}) は定義されない(実装ではエラーとする)。

本文で読む(前後の説明と例)→

閉包の状態

定義

定義は閉包の起点です(証明を要しません)。

印の意味: ✓公理まで証明済み ・ △証明あり(閉包未完)・ ※主張のみ。テーマごとの集計は 閉包の状況。

これを使っている定理

証明で明示的に参照している定理は、まだありません。

関連するノック 1 問