正常 - RPN转换

时间:2010-02-13 02:05:02

标签: java

有没有办法将“正常”数学符号解释为反向波兰表示法(RPN)?  例如 1)2 + 3 * 4 - 1 = 234 * + 1- 2)5 (4-8)= 548 -

你可以假设遵循BODMAS规则并且必须首先计算内括号等等。我的意思是这里应用的正常数学..答案应该是后缀表示法。 感谢

2 个答案:

答案 0 :(得分:4)

是; shunting yard algorithm定义了如何执行此操作。

每次读取数字时,请将其放在输出队列上。每次读取运算符时,请将其放在运算符堆栈上。这两种结构构成了算法的基础。

答案 1 :(得分:1)

所谓的“正常”被严格称为infix notation。还有prefixpostfix notations,后者是RPN。

典型的符号重新排列是通过构造一个解析树并专门遍历所需的排列来完成的。

以下是有关如何操作的说明:a b