后缀表达式求值C++
时间: 2023-11-14 21:07:31 浏览: 59
后缀表达式求值可以使用栈来实现。具体步骤如下:
1. 从左到右遍历后缀表达式的每个元素。
2. 如果当前元素是操作数,则将其压入栈中。
3. 如果当前元素是操作符,则从栈中弹出两个操作数,进行相应的运算,并将结果压入栈中。
4. 遍历完后缀表达式后,栈中只剩下一个元素,即为表达式的值。
以下是C++代码实现:
```c++
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int evaluatePostfix(string exp) {
stack<int> s;
for (int i = 0; i < exp.length(); i++) {
if (isdigit(exp[i])) {
s.push(exp[i] - '0');
} else {
int op2 = s.top();
s.pop();
int op1 = s.top();
s.pop();
switch (exp[i]) {
case '+':
s.push(op1 + op2);
break;
case '-':
s.push(op1 - op2);
break;
case '*':
s.push(op1 * op2);
break;
case '/':
s.push(op1 / op2);
break;
}
}
}
return s.top();
}
int main() {
string exp = "23+45+*";
cout << evaluatePostfix(exp) << endl; // 输出:45
return 0;
}
```