前缀表达式:是指将运算符写在前面,操作数写在后面的不包含括号的表达式,而且为了纪念其发明者波兰数学家JanLukasiewicz,所以前缀表达式也叫做“波兰表达式”。
后缀表达式:与前缀相反,是指运算符写在操作数后面的不包含括号的算术表达式,也叫做逆波兰表达式。
中缀表达式:就是常用的将操作符放在操作数中间的算术表达式。
一、和二叉树的关系
-
前缀表达式对应于二叉树的前序遍历
-
中缀表达式对应于二叉树的中序遍历
-
后缀表达式对应于二叉树的后序遍历
如中缀(中序遍历)表达式:(a+b)*c-(d+e)
前缀(先序遍历):-*+abc+de
后缀(后序遍历):ab+c*de+-
二、小括号法
表达式:(a+b)*c-(d+e)
-
首先将中缀表达式的所有运算加括号:(((a+b)*c)-(d+e))
-
运算变量顺序不变,将运算符号放到括号外面,前缀就放前面、后缀就放后面
-
去掉括号后,前缀:-*+abc+de,后缀:ab+c*de+-
平时考试做题的时候,推荐这种方法