はじめに
この記事は 共通テスト手順記述標準言語 (DNCL) Advent Calendar 2025 の13日目の記事です。
DNCLで逆ポーランド記法電卓を作ります。キューというデータ構造を使います。
↓キューについては下の記事をご覧ください。
逆ポーランド記法電卓を書こう
関数スタック()は空のスタックを返します。
関数名前.push(値)はスタック名前の一番上に値を追加します。
関数名前.top()はスタック名前の一番上の要素を取得します。
関数名前.pop()はスタック名前の一番上の要素を取得した後、削除します。
関数要素数(名前)はスタック名前の要素数を返します。
逆ポーランド記法電卓
shiki ← {3,4,+,2,*,7,-}
stack ← スタック()
i ← 0
i < 要素数(shiki)の間、
| token ← shiki[i]
| もし tokenが数字である ならば
| | stack.push(token)
| を実行し、そうでないならば
| | a ← stack.pop()
| | b ← stack.pop()
| | もし token == "+" ならば
| | | stack.push(a + b)
| | を実行し、そうではなくもし token == "-"ならば
| | | stack.push(b - a)
| | を実行し、そうではなくもし token == "*"ならば
| | | stack.push(b * a)
| | を実行し、そうではなくもし token == "/"ならば
| | | stack.push(b ÷ a)
| | を実行する
| i ← i + 1
を繰り返す
stack.top()を表示する