我知道它们是如何相互转换的,但从来没有真正理解过它们的应用是什么。通常的中缀操作非常易读,但是它在哪里失败了,导致了前缀和后缀表示法的产生
发布于 2011-09-26 23:26:31
中缀表示法对于人类来说很容易阅读,而前缀/后缀表示法对于机器来说更容易解析。前缀/后缀表示法的最大优点是不会出现像运算符优先级这样的问题。
例如,考虑中缀表达式1 # 2 $ 3
。现在,我们不知道这些运算符是什么意思,所以有两个可能的后缀表达式:1 2 # 3 $
和1 2 3 $ #
。如果不知道这些运算符的使用规则,中缀表达式基本上是没有价值的。
或者,用更一般的术语来说:可以从前缀/后缀表达式恢复原始(解析)树,而不需要任何额外的知识,但对于中缀表达式则不是这样。
发布于 2011-09-26 23:44:12
后缀表示法,也称为RPN,从左到右很容易处理。将操作数推入堆栈;运算符将其操作数从堆栈中弹出并推送结果。很少或根本不需要解析。它被Forth和一些计算器使用(HP计算器以使用RPN而闻名)。
前缀表示法几乎也很容易处理;它在Lisp中使用。
发布于 2011-09-26 23:25:47
至少对于前缀表示法的情况:使用前缀操作符的优点是,从语法上讲,它读起来就像是一个函数调用
https://stackoverflow.com/questions/7562477
复制相似问题