Digit Stack
コンピュータサイエンスにおいてスタックは特別なデータ型あるいはコレクション(データの集合)といえる。 その主要な操作はコレクションへのデータの追加("PUSH"として知られる)とデータの取り出し("POP"として知られる)である。 PUSH操作とPOP操作の関係はスタックが後入れ先出し(Last-In-First-Out (LIFO))データ構造を持つことを意味し、 最後に追加した要素を最初に取り出すやり方である。 しばしばPEEKも主要な操作として実装されており、これは取り出すこと無しに最新の要素の値を返す。
Pythonでスタックに対する操作を再現してみよう。あなたは以下のコマンドを与えられる:
- "PUSH X" --
X
をスタックの最後に追加する。
X
は数である。
- "POP" -- スタックの最後の要素を参照して取り出す。もしスタックが空なら0を返し何もしない。
- "PEEK" -- スタックの最後の要素を参照する。もしスタックが空なら0を返す。
このスタックは数値のみを格納可能とする。
全てのコマンドを実行し、スタックを参照("POP" または "PEEK")した際の値の合計を得ること。 合計の初期値は0とする。
例を見てみよう。以下の一続きのコマンド実行結果である:
["PUSH 3", "POP", "POP", "PUSH 4", "PEEK", "PUSH 9", "PUSH 0", "PEEK", "POP", "PUSH 1", "PEEK"]