前缀表达式 (波兰表达式)
1.前缀表达式 是运算符在操作数的前面,如;(3+4)* 7-5化为前缀表达式:-* +3475
2. 求值步骤:
- 从右往左扫描,数字按照5743的顺序压入栈中
- 遇到+,弹出两个数(栈顶元素3和次顶元素4),进行运算结果为7,然后将结果7压入栈内
- 接下来遇到 * 弹出最上面的两个元素7和7,运算,结果为7* 7为49,将49压入栈内。
- 最后运算- ,弹出两个数,49和5,相减,为44。后将44压入栈内,即为最终结果
特征:
1、符号在前,数在在后
2、符号从右向左读取,即为运算顺序
3、数字从左往右读取,
中缀表达式
- 中缀表达式常见的运算表达式,为(3+4)* 7 - 5
- 求值步骤见上一篇
特征:
1、常见的形式,符号与数值的交织运算
后缀表达式(逆波兰表达式)
- 后缀表达式又称之为逆波兰表达式,与前缀表达式相似,仅仅只是运算符位于操作数后面
- 举例说明:(3 + 4)* 7 - 5 对应的后缀表达式为:34+7* 5-
- 求值方式:
- 与前缀表达式相反,从左到右扫描
- 遇到数字时,将数字压入栈内,将34压入栈内
- 遇到符号时弹出栈顶的两个数,用运算符对他们做相应的计算,将结果压入栈内,遇到+,弹出3和4,3+ 4结果为7,将7压入栈内,遇到5,再将5压入栈内,遇到* 再弹出5和7,做运算,为35,在遇到5,压入栈内,在遇到-,弹出两个数做运算35-5,结果为30
- 重复操作直到最右端