酷代码 AI
菜单
服务商

C++ 实现前缀表达式求值算法

以下是使用 C++ 实现计算前缀表达式值的代码: ```cpp #include <iostream> #include <stack> #include <string> #include <sstream> // 计算前缀表达式的值 int evaluatePrefix(const std::string& expression) { std::stack<int> stack; // 从右向左扫描表达式 for (int i = expression.length() - 1; i >= 0; --i) { if (isdigit(expression[i])) { // 如果是操作数,将其压入栈中 stack.push(expression[i] - '0'); } else if (expression[i] != ' ') { // 如果是运算符 int operand1 = stack.top(); stack.pop(); int operand2 = stack.top(); stack.pop(); switch (expression[i]) { case '+': stack.push(operand1 + operand2); break; case '-': stack.push(operand1 - operand2); break; case '*': stack.push(operand1 * operand2); break; case '/': stack.push(operand1 / operand2); break; } } } return stack.top(); } int main() { std::string expression; std::getline(std::cin, expression); int result = evaluatePrefix(expression); std::cout << result << std::endl; return 0; } ``` ### 代码解释 1. **evaluatePrefix 函数**: - 该函数接受一个字符串表示的前缀表达式作为参数。 - 使用一个栈 `stack` 来存储操作数。 - 从右向左扫描表达式,遇到操作数就将其压入栈中,遇到运算符就从栈中弹出两个操作数进行计算,并将结果压入栈中。 - 最后栈中的唯一元素就是表达式的值。 2. **main 函数**: - 读取用户输入的前缀表达式。 - 调用 `evaluatePrefix` 函数计算表达式的值。 - 输出计算结果。 ######[AI问答 | 504点数解答 | 2026-03-01 20:37:41]

相关提问
发财导航,免费问AI
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]