首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单的数值表达式求解器

简单的数值表达式求解器
EN

Stack Overflow用户
提问于 2012-06-23 03:31:09
回答 3查看 1K关注 0票数 3

首先,我为我糟糕的英语感到抱歉。

对于我的算法和数据结构类的最后一个项目,我需要用C++创建一个简单的数值表达式求解器。它需要解决像3*12+(4-6)这样的简单表达式。我设法拆分了表达式,并将运算符和数字分开,但我不能再进一步了。诀窍是将运算符放在二叉树上,但我没有做到这一点。

该程序只需要使用默认的C++库。也许有一些基本的实现我可以在其上构建?

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-23 03:49:16

暂时忘掉二叉树吧。

您需要将表达式转换为reverse polish notation。在这个转换过程中,你正在构建一个二叉树!

反向抛光记法

票数 0
EN

Stack Overflow用户

发布于 2012-06-24 17:17:29

看看这个http://www.codeproject.com/KB/recipes/rwformulaparser.aspx,我想这个项目会解决你的问题的,乔塞米

票数 0
EN

Stack Overflow用户

发布于 2012-10-06 05:31:13

你会想要将它转换成反向抛光符号,转换的算法有点复杂,但许多网站详细说明了确切的步骤。做多位数字会让事情变得更复杂。

您需要知道的最重要的事情是,对于RPN,您必须使用堆栈,而不是二叉树。一旦等式切换到RPN,您将把它的数字清空到堆栈中,直到遇到一个运算符,然后从堆栈中取出前两个数字,对它们进行操作,并将最终的值放回堆栈中。最后,你将在堆栈上留下一个数字,它将是你的等式的答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11162902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档