用C++写一个计算后缀表达式的函数
时间: 2024-05-03 09:19:46 浏览: 91
下面是一个使用栈来计算后缀表达式的 C++ 函数:
```c++
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int calculatePostfix(string postfix) {
stack<int> s;
for (int i = 0; i < postfix.length(); i++) {
if (isdigit(postfix[i])) {
s.push(postfix[i] - '0');
} else {
int op2 = s.top();
s.pop();
int op1 = s.top();
s.pop();
switch (postfix[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();
}
```
在这个函数中,我们首先创建了一个整数类型的栈 `s`,用于存储操作数。然后我们遍历后缀表达式字符串 `postfix` 中的每个字符。如果字符是数字,则将其转换为整数并将其推入栈中;如果字符是运算符,则从栈中弹出两个操作数,进行相应的运算,并将结果推入栈中。最后,返回栈顶元素即为后缀表达式的计算结果。
例如,如果我们要计算后缀表达式 "34+",则调用 `calculatePostfix("34+")` 函数,返回结果 7。
阅读全文