Open Zakariyya opened 4 years ago
eg: ( 3 + 4 ) * 5 - 6 前缀表达式 - * + 3 4 5 6 中缀表达式 ( 3 + 4 ) * 5 - 6 后缀表达式 3 4 + 5 * 6 -
运算符位于操作数之前,从右至左扫描
( 3 + 4 ) * 5 - 6
就是我们日常看到的表达式,对计算机来说却不友好
因此在计算结果时,往往会将中缀表达式转成其他表达式,一般为后缀表达式
运算符位于操作数之后,从左至右扫描表达式
1 + ( ( 2 + 3 ) * 4 ) - 5
上表的 s2 ,在整个转换过程中,没有pop操作,全程一直在压栈,没有出栈操作,而且后面还需要逆序输出
因此这里的 s2 使用 数组或List 更适合
前缀表达式(波兰表达式)
运算符位于操作数之前,从右至左扫描
中缀表达式
就是我们日常看到的表达式,对计算机来说却不友好
因此在计算结果时,往往会将中缀表达式转成其他表达式,一般为后缀表达式
后缀表达式(逆波兰表达式)
运算符位于操作数之后,从左至右扫描表达式
应用
中缀表达式 转成 后缀表达式
注意
上表的 s2 ,在整个转换过程中,没有pop操作,全程一直在压栈,没有出栈操作,而且后面还需要逆序输出
因此这里的 s2 使用 数组或List 更适合