本题中“逆波兰表达式”的定义:
1、一个数是一个逆波兰表达式,值为该数
2、“运算符 逆波兰表达式 逆波兰表达式”是逆波兰表达式,值为两个逆波兰表达式的值运算的结果
- C语言代码示例:
#include<stdio.h>
#include<stdlib.h>
double exp(){
//读入一个逆波兰表达式,并计算其值
char s[20];
scanf("%s",s);
switch(s[0]){
case '+': return exp() + exp();
case '-': return exp() - exp();
case '*': return exp() * exp();
case '/': return exp() / exp();
default: return atof(s);
break;
}
}
int main(){
printf("%lf\n",exp());
return 0;
}
- 运行示例:
注:文中问题及代码参考 MOOC——《程序设计与算法》(北京大学 郭炜)