注:学习自《数据结构》李春葆,图自PPT
一丶算术表达式有三种类型
- 中缀表达式 1 + 2 * 3:运算符位于操作数中间
中缀表达式的运算规则:“先乘除,后加减,从左到右计算,先括号内,后括号外”
因此,中缀表达式不仅要依赖运算符优先级,而且还要处理括号
- 后缀表达式 1 2 3 * +:运算符在操作数的后面
- 已考虑了运算符的优先级
- 没有括号
- 只有操作数和运算符,而且越放在前面的运算符来越优先执行
- 前缀表达式 + 1 * 2 3:运算符位于操作数前面
我们平常使用的是中缀表达式,但后缀表达式非常好,运算的优先已经好了,所以我们用后缀表达式计算
二丶求中缀表达式
- 将中缀算术表达式转换成后缀表达式
- 对该后缀表达式求值
① 将中缀算术表达式转换成后缀表达式
算法描述
LeetCode 有道题目
基本计算器,可以练练手
② 对该后缀表达式求值
算法描述