用改进的反波兰表示法求解方程

时间:2014-04-10 06:20:28

标签: c++ input postfix-notation

我必须编写一个程序,用四个基本操作求解方程式。 该计划必须如下:

示例输入:

SET a = 1
SET b = 3 
SOLVEFOR c ( 4 * ( b - c + 2) + a ) = ( 2 - a )

输出:

c = 5.000000

我正在使用反向波兰表示法来评估等式右边的值(我知道那里只有已知数字的事实)。 至于左侧,这是我的问题。我知道必须有一种方法来修改RPN以获得该变量,但我不知道应该如何完成它。有什么建议?

编辑:我知道这可以用二叉树完成,但我正在尝试使用RPN。

1 个答案:

答案 0 :(得分:0)

如果你可以用二叉树解决,你可以用RPN解决。

首先在纸上绘制二叉树的解决方案。当你看到它时,更容易思考。您将在树上进行重新平衡操作,而不会影响方程式结果。

一旦未知在左侧被隔离,你就完成了。每个重新平衡操作在RPN中都有一个等效的操作(这是树的平面表示)。

当你看到所绘制的解决方案时,洞察力将会出现。