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

キュー

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

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

  • empty∈Q\mathrm{empty} \in \mathcal{Q}(空のキュー)
  • enqueue:Q×X→Q\mathrm{enqueue} : \mathcal{Q} \times X \to \mathcal{Q}(末尾に加える)
  • dequeue:Q→Q\mathrm{dequeue} : \mathcal{Q} \to \mathcal{Q}(先頭を取り除く)
  • front:Q→X\mathrm{front} : \mathcal{Q} \to X(先頭を読む)
  • isEmpty:Q→{true,false}\mathrm{isEmpty} : \mathcal{Q} \to \{\mathrm{true}, \mathrm{false}\}

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

isEmpty(empty)=true,isEmpty(enqueue(Q,x))=false,front(enqueue(Q,x))={x(Q=empty)front(Q)(Q≠empty)dequeue(enqueue(Q,x))={empty(Q=empty)enqueue(dequeue(Q),x)(Q≠empty)\begin{aligned} &\mathrm{isEmpty}(\mathrm{empty}) = \mathrm{true}, \qquad \mathrm{isEmpty}(\mathrm{enqueue}(Q, x)) = \mathrm{false}, \\[2pt] &\mathrm{front}(\mathrm{enqueue}(Q, x)) = \begin{cases} x & (Q = \mathrm{empty}) \\ \mathrm{front}(Q) & (Q \ne \mathrm{empty}) \end{cases} \\[2pt] &\mathrm{dequeue}(\mathrm{enqueue}(Q, x)) = \begin{cases} \mathrm{empty} & (Q = \mathrm{empty}) \\ \mathrm{enqueue}(\mathrm{dequeue}(Q), x) & (Q \ne \mathrm{empty}) \end{cases} \end{aligned}

front(empty)\mathrm{front}(\mathrm{empty}) と dequeue(empty)\mathrm{dequeue}(\mathrm{empty}) は定義されない。

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

閉包の状態

定義

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

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

これを使っている定理 証明で参照している 2 件

関連するノック 1 問