一、定义:逆波兰式(Reverse Polish notation,RPN,或逆波兰记法),也叫后缀表达式(将运算符写在操作数之后)
二、执行过程:
- 当遇到数值时入栈;
- 当遇到运算符时,连续两次出栈,将两个出栈元素结合运算符进行运算,将得到的结果入栈;
- 如此往复直至扫描到终止符'\0'。此时栈底元素即为表达式的值。
三、代码实现:
int Op(int a, char op, int b) //运算函数
{
if(op == '+') return a+b;
if(op == '-') return a-b;
if(op == '*') return a*b;
if(op == '/')
{
if(b == 0)
{
cout << "Error" <<endl; //被除数为0时报错
return 0;
}
else
{
return a/b;
}
}
}
int com(char exp[]) //后缀式计算函数
{
int i, a, b, c;
char op; //当前运算符
int st