7-2 后缀表达式求值c++
时间: 2024-06-12 07:10:10 浏览: 110
要求计算后缀表达式的值,可以使用栈来实现。遍历后缀表达式,如果遇到数字则入栈,如果遇到运算符则从栈中弹出两个数字进行计算,并将结果入栈。最终栈中剩下的数字即为表达式的值。
以下是C++代码实现:
```c++
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int evalRPN(vector<string>& tokens) {
stack<int> s;
for (string token : tokens) {
if (token == "+" || token == "-" || token == "*" || token == "/") {
int num2 = s.top();
s.pop();
int num1 = s.top();
s.pop();
if (token == "+") s.push(num1 + num2);
else if (token == "-") s.push(num1 - num2); else if (token == "*") s.push(num1 * num2);
else if (token == "/") s.push(num1 / num2);
} else {
s.push(stoi(token));
}
}
return s.top();
}
int main() {
vector<string> tokens = {"2", "1", "+", "3", "*"};
cout << evalRPN(tokens) << endl; // 输出 9
return 0;
}
```
阅读全文