简单的数值表达式求解器
Simple numerical expression solver
首先,对不起,我的英语不好。
对于我在算法和数据结构类上的最后一个项目,我需要在C++中创建一个简单的数值表达式求解器。它需要解决简单的表达式,如 3*12+(4-6)
.我设法拆分表达式并将运算符与数字分开,但我不能再进一步了。诀窍是将运算符放在二叉树上,但我还没有设法做到这一点。
该程序只需要使用默认的C++库。也许我可以构建一些基本的实现?
提前谢谢。
暂时
忘记二叉树。
您需要将表达式转换为反向抛光表示法。在转换过程中,您正在构建一个二叉树!
[反向抛光符号][2]
看看这个 http://www.codeproject.com/KB/recipes/rwformulaparser.aspx 我认为这个项目会解决你的问题约瑟米
您需要将其转换为反向抛光符号,转换的算法有点复杂,但许多网站详细介绍了确切的步骤。做多位数的数字会使它稍微复杂一些。
您需要知道的最重要的事情是,对于 RPN,您必须使用堆栈,而不是二叉树。一旦方程切换到 RPN,您将将其数字清空到堆栈中,直到遇到运算符,然后您将从堆栈中取出前两个数字并对其进行操作并将最终值放回堆栈。最后,您将在堆栈上留下一个数字,这将是您等式的答案。
相关文章:
- (C++)分析树以计算返回错误值的简单算术表达式
- 有没有一种简单的方法来检查C++中的不安全表达式
- 使用参数包和元组创建一个简单的表达式类
- 标记简单错误之前的预期主表达式
- 计算简单数学表达式的函数的实现.(C++)
- 类简单分数的不可接受的条件表达式
- 我在C++文件中的简单代码块上有 2 个错误。错误 C2059:语法错误:"?"。第二智能感知:预期表达式。怎么了?
- 包装内部函数的简单C++表达式模板会产生不同的指令
- 在C++中使用非常简单的表达式regex_error
- 卤化物表达式:_pFirstBlock == pHead 在简单程序上崩溃
- VS2008的简单C++正则表达式库,无功能包
- 简单的数值表达式求解器
- 简单正则表达式不匹配
- ExprTk 中的简单数学表达式
- 没有正则表达式库的简单正则表达式
- 使用 std::正则表达式进行简单的 RX 是一种很好的做法
- 什么库可以解析和解决C++中的简单数学表达式
- C++11简单正则表达式不适用于gcc 4.9.1
- 简单错误:在";"标记之前出现预期的主表达式
- C++正则表达式的简单使用