まず、課題を解こうとする前に 逆ポーランド記法(後置記法) を理解する必要があります。
1年生の時にこれに関する課題が出た人もいれば、全くはじめて聞いた、という人もいると思いますので、ここで改めて逆ポーランド記法について説明します。
逆ポーランド記法とは、一言で言うと 『操作対象の後ろに演算子を置く計算式の記法』 です。でもこれではちょっと分かりにくいので、例として、
1 + 2
という計算式を考えてみましょう。
この式は、普段私たちが使ってる書き方で、中置記法 といいます。この式の、
となります。式を見ると、操作対象である "1" と "2" の中間 に、演算子の "+" があります。この式が『中置記法』と呼ばれるのは、 演算子が操作対象の間にある から、ということなのです。
それでは、『後置記法』、つまり『逆ポーランド記法』とは? "後置" というのがポイントなので、演算子は後ろに置きます。
1 2 +
これが逆ポーランド記法の書き方です。 "1 と 2 を 足す" と、日本語で考えるとわかりやすいでしょう。同様に、 "3 4 -" は "3 から 4 を 引く" ということになります。
この書き方を使うと、カッコが混じるような複雑な数式でも、カッコを使わずに書くことができるなどのメリットがあるほか、コンピュータープログラムで計算を簡単に組むことができるのです。
逆ポーランド記法をプログラムで計算させるには、 スタック を使うと簡単です。
スタックって何だったっけ?という人は、『タテに細長い、筒の入れ物』を考えてください。この入れ物には、1個分の箱を、上に積み重ねて入れられます。
ここに、数字や文字といった "データ" が入った箱を上から入れます。これが 『プッシュ』 です。上から箱を取り出して、データを取り出すことが 『ポップ』 となります。大体のイメージがつかめればOKです。
では、実際にどういう仕組みで計算しているかというと、2つのスタックを使っています。
例えば、 "2 3 5 * +" という式 (2+3*5) を計算するなら以下のようになります(課題のページにあったものを分かりやすくしたものです)。

まず、計算式を分解して、計算式スタックに1つずつプッシュしていきます。
次に、 計算式スタックの底 から1つ取ります。ポップでは無いことに注意してください。これが課題プログラムの top メソッドです。
ここで取ったものによって、処理が違います。数字であれば、そのままそれを結果スタックにプッシュしますが、演算子であれば、結果スタックから2個ポップして、取った演算子に応じて計算します。"+" なら加算、"×" なら掛け算などです。そしてその計算結果を、結果スタックにプッシュします。
あとは、『計算式スタックの底から取って、処理する…』という流れを、計算式スタックの中身が無くなるまで繰り返すと、結果スタックの中に計算結果のデータが1つ残ります。これで逆ポーランド記法の計算はOKです。
仕組みがわかったところで、実際に課題でやらなきゃならないことを整理しましょう。
上から順番にひも解いていきましょう。
⇒次へ(工事中)