中缀表达式

来自GSXAB的知识库
中缀
术语名称 中缀
英语名称 infix
中缀表达式
术语名称 中缀表达式
英语名称 infix notation

中缀表达式(infix notation)或逆波兰表达式(reverse Polish notation)指一个运算中,将运算符放在操作数之间的标记方式。人类习惯中,绝大多数常见二元运算都使用中缀表达。

中缀表达本身有可能产生歧义。为了消除表达式解析上的歧义,中缀表达式总是需要加入括号来标注结合顺序;为了表述的简便,通常会在不同运算中规定优先级、为同优先级运算规定结合性,来省略一部分括号,避免嵌套过多难以阅读。常见算术记号中,一般有默认的优先级与结合性,比如在算术运算中,不加括号时乘除总是优先于加减进行,乘方总是优先于加减乘除进行,同时,多个加减同级运算或多个乘除同级运算总是从左到右进行,多个乘方则从右到左进行,这就是约定俗成的规则。

一般仅有二元运算会使用中缀表达式。特别地,一元运算符不能使用中缀表达式;对三元以上的运算,如 [math]\displaystyle{ \circ(a, b, c) }[/math] ,其对应的中缀表达式通常要重复运算符,写作 [math]\displaystyle{ a\circ b \circ c }[/math]

由于涉及优先级、结合性之类的规则,中缀表达式相对前缀后缀表达更加难以算法处理。