我找到了一种将中缀表示法中的数学表达式转换为后缀表示法的方法。 (http://en.wikipedia.org/wiki/Shunting-yard_algorithm)但是,我应该如何编码来解释结果表达式?
这是我的想法:
对于仅操作数的表达式:
对于具有函数的表达式(正弦,绝对值,符号......)
我现在的情况是,我没有任何环境可以将我的想法应用到一段代码中,因此我只能说抽象。
这个想法是否可行?如果可以改进,请注意它们。参考文献也受到欢迎。
如果您要展示一段代码,请将代码更改为每个人都能理解的字词。例如:
变化:
for (var i:int = 0; i < rpn.length; i++) {
if ("1234567890.".indexOf(rpn[i]) != -1) {
// do something...
}
}
分为:
for every element in the postfix result,
if the element is a number,
do something...
end if
end for
结束...... 是可选的。
谢谢!
答案 0 :(得分:3)
通常这是一个简单的部分......你只需从左到右遍历你的后缀表达式。每次遇到一个数字时,都会将其推入堆栈。每次遇到操作符时,都会从堆栈中弹出相关数量的操作数,计算结果并将其推入堆栈。