表达式简介
最近看书的时候接触到了后缀表达式,恰好看SICP中间也碰到了类似的问题,就花时间好好将这部分内容进行了整理。
前缀表达式(Prefix Notation)是指将运算符写在前面操作数写在后面的不包含括号的表达式,而且为了纪念其发明者波兰数学家Jan Lukasiewicz所以前缀表达式也叫做“波兰表达式”。比如- 1 + 2 3
.中缀表达式(Infix Notation)就是常用的将操作符放在操作数中间的算术表达式。前缀表达式和后缀表达式相对于中缀表达式最大的不同就是去掉了表示运算优先级的括号,比如1-2+3
后缀表达式(Postfix Notation)与之相反,是指运算符写在操作数后面的不含括号的算术表达式,也叫做逆波兰表达式。比如1 2 3 + -
人工转换的方法
假设有一个中缀表达式a+b*c-(d+e)
1首先将这个中缀表达式的所有运算加括号((a+(b*c))-(d+e))
2然后将所有运算符放到括号后面,这样就变成了((a(bc)* )+ (de)+ )-
3把所有括号去掉abc*+de+-,最后得出的结果就是后缀表达式