C++数据结构后缀表达式求职
时间: 2024-04-27 08:18:29 浏览: 116
C++中的后缀表达式求可以通过使用栈来实现。下面是一个示例代码来演示如何求解后缀表达式的值[^1]:
```cpp
#include <iostream>
#include <stack>
#include <string>
#include <cmath>
using namespace std;
int evaluatePostfix(string postfix) {
stack<int> s;
int result;
for (int i = 0; i < postfix.length(); i++) {
if (isdigit(postfix[i])) {
s.push(postfix[i] - '0');
} else {
int operand2 = s.top();
s.pop();
int operand1 = s.top();
s.pop();
switch (postfix[i]) {
case '+':
s.push(operand1 + operand2);
break;
case '-':
s.push(operand1 - operand2);
break;
case '*':
s.push(operand1 * operand2);
break;
case '/':
s.push(operand1 / operand2);
break;
case '^':
s.push(pow(operand1, operand2));
break;
}
}
}
result = s.top();
s.pop();
return result;
}
int main() {
string postfix = "52+3*";
int result = evaluatePostfix(postfix);
cout << "Result: " << result << endl;
return 0;
}
```
这段代码首先定义了一个栈来存储操作数,然后遍历后缀表达式的每个字符。如果遇到数字,将其转换为整数并压入栈中。如果遇到运算符,从栈中弹出两个操作数,执行相应的运算,并将结果压入栈中。最后,栈中剩下的元素就是后缀表达式的值。
阅读全文