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

2 本のスタックによるキュー

定理 8.2(「基本的なデータ構造」§8) ・ ✓公理まで証明済み

全操作が最悪 Θ(1)\Theta(1) 時間のスタック(例えば 命題 4.2 の 1 に基づく連結リスト実装)を 2 本用意し、in\mathrm{in}、out\mathrm{out} と呼ぶ。次のように操作を定める。

  • enqueue(x)\mathrm{enqueue}(x):in\mathrm{in} に xx を push\mathrm{push} する。
  • dequeue()\mathrm{dequeue}():out\mathrm{out} が空ならば、in\mathrm{in} が空になるまで「in\mathrm{in} から pop\mathrm{pop} して out\mathrm{out} に push\mathrm{push}」を繰り返す。その後 out\mathrm{out} が空ならエラー、そうでなければ out\mathrm{out} から pop\mathrm{pop} して返す。
  • front()\mathrm{front}():同じ移送を行ったうえで out\mathrm{out} の top\mathrm{top} を返す。

このとき、この実装は 定義 7.1 の公理を満たす。さらに、空の状態から始めた任意の mm 回の操作列の総コストは 3m3m 以下であり、1 操作あたりの償却計算量は O(1)O(1) である。ただし個々の dequeue\mathrm{dequeue} の最悪計算量は、そのときの要素数を nn として Θ(n)\Theta(n) である。

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

閉包の状態

✓ 公理まで証明済み

証明が使う定理を 前提 としてたどると、Rikai の中の証明だけで定義・公理(物理では基本仮定)までつながっています(前提の定理類 1 件、定義なども含めて 2 件)。

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

前提をたどる 証明が使う定理・定義(直接 2 件)

▸ を開くと、その項目の証明が使う前提が出ます。深い先は各項目のページでたどれます。

これを使っている定理

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