A+Bを逆ポーランド表記法で記述すると「AB+」となる。
AB+CDE/−*の場合、以下のようになる。
- Aをスタックに入れる。
- Bをスタックに入れる。
- +があるので、スタックからBを取り出し、次にAをスタックから取り出し、「A+B」をスタックに入れる。
- Cをスタックに入れる。
- Dをスタックに入れる。
- Eをスタックに入れる。
- /があるので、スタックからEを取り出し、次にDをスタックから取り出し、「D/E」をスタックに入れる。
- −があるので、スタックから(D/E)を取り出し、次にCをスタックから取り出し、「C−(D/E)」をスタックに入れる。
- *があるので、スタックからC−(D/E)を取り出し、次にスタックから(A+B)を取り出し、
結果として「(A+B)*(C−(D/E))となる。
(A+B)*(C−(D/E))に A=1,B=3,C=5,D=4,E=2 を代入すると12になる。
|