pta 后缀表达式求值 c
时间: 2023-11-25 14:07:38 浏览: 54
PTA 后缀表达式求值的思路如下:
1. 定义一个栈,用于存储操作数。
2. 从左到右遍历后缀表达式的每个元素,如果是操作数,则入栈;如果是运算符,则从栈中弹出两个操作数进行计算,并将计算结果入栈。
3. 遍历完后缀表达式后,栈顶元素即为表达式的计算结果。
以下是 C++ 代码实现:
```cpp
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int evalRPN(string tokens[]) {
stack<int> s;
for (int i = 0; tokens[i] != ""; i++) {
if (tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/") {
int b = s.top();
s.pop();
int a = s.top();
s.pop();
if (tokens[i] == "+") s.push(a + b);
else if (tokens[i] == "-") s.push(a - b);
else if (tokens[i] == "*") s.push(a * b);
else if (tokens[i] == "/") s.push(a / b);
} else {
s.push(stoi(tokens[i]));
}
}
return s.top();
}
int main() {
string tokens[] = {"2", "1", "+", "3", "*"};
cout << evalRPN(tokens) << endl; // 输出 9
return 0;
}
```