--ホーム--
|
スタックRPNを理解するのにスタック(stack)の概念を理解することは重要なことです.そこで,スタックに付いてここでは説明します. LIFOバッファースタックはLIFOバッファーだと言えます.いきなりわけのわからないことを書きましたが,このLIFOについて説明します.LIFOとは,Last In First Outの略で,「後に入れたものが先に出てくる入れ物」ということです. まだわかりにくいので,今度は絵を書いてみました. この絵で,バネ付きの入れ物がスタックです.一番左の絵(a)はスタックが空の状態です.ここに「1」と書かれた箱を入れようとしています.その次にある絵(b)は,スタックに「1」と書かれた箱を一つ入れた状態です.さらに「2」と書かれた箱を入れた状態が(c)です.そして,このスタックから物を取り出す時(d)を見ると,一番上のものから順番に取り出していきます.すなわち,「2」という箱が取り出されます. 箱の動きに注目すると,最後に入れた箱が一番最初に取り出されます.すなわちLast In First Outになっているわけです.このスタックは,今日のCPUではごく当たり前に使われています(昔のメインフレームには,スタックの概念の無いものもありました).プログラムが効率よく書けるのは,このスタックのおかげなのです. この「最後にいれた物が先(あるいは,最初にいれた物が後)」という格納庫であるスタックに付いて理解しておくと,RPN電卓の挙動を理解しやすくなります. |