逆波兰表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了逆波兰表达式相关的知识,希望对你有一定的参考价值。

* 8 5 == 8 * 5

+ 9 9 == 9 + 9

逆波兰表达式的定义

1.一个数是逆波兰表达式,值为该数。

2.”运算符 逆波兰表达式 逆波兰表达式“ 是逆波兰表示式 值是两个逆波兰表达式运算的结果。

逆波兰表示式是一种把运算符放在前面的表达式

要求你用编写一个程序来计算逆波兰表达式

显然 逆波兰表示式的定义就是使用递归定义的,所以我们用递归实现逆波兰表达式的计算。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstdlib>
 4 using namespace std;
 5 
 6 double exp()
 7 {
 8     char s[20];//读入一个数 用字符数组储存
 9     cin >> s;
10     switch(s[0])
11     {
12         case +: return exp() + exp(); 
13         case -: return exp() - exp();
14         case *: return exp() * exp();
15         case /: return exp() / exp();
16         default: return atof(s);//将字符数组转变为double型数据并返回double数据
17         break;
18     }
19 }
20 
21 int main()
22 {
23     printf("%f\n",exp());
24     return 0;
25 }

 atof 是C++的一个库函数 功能是把一个字符数组中储存的浮点数转化为double型。

以上是关于逆波兰表达式的主要内容,如果未能解决你的问题,请参考以下文章

Java代码实现逆波兰计算器

python实现逆波兰计算表达式的代码

逆波兰表达式

逆波兰计算器

逆波兰计算器

C++栈的应用:逆波兰式的实现