数据结构表达式求值案例
时间: 2023-05-13 10:05:17 浏览: 91
好的,让我来回答你的问题。数据结构表达式求值是一个常见的问题,通常可以使用栈来解决。具体来说,我们可以将表达式转换为后缀表达式,然后使用栈来计算后缀表达式的值。以下是一个示例代码:
```
#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*54*+9-";
cout << evaluatePostfix(exp) << endl;
return 0;
}
```
这段代码可以计算后缀表达式"23*54*+9-"的值,输出结果为17。希望这个例子能够帮助你理解数据结构表达式求值的过程。
阅读全文