疑难点:后缀表达式的入栈出栈操作
中缀,前缀,后缀表达式
## 中缀表达式转化为前缀和后缀表达式
转化步骤:
- 按照运算符的优先级对所有的运算单位加括号
- 将运算符移动到对应括号的前面(前缀表达式)或后面(后缀表达式)
- 去掉括号,得到前缀或后缀表达式
示例:
中缀表达式:1+(2+3)×4-5
1)加括号
式子变成 ((1+((2+3)×4))-5)2)移动运算符
对于前缀表达式,变成了 -(+(1×(+(23)4))5)
对于后缀表达式:变成了((1((23)+4)×)+5)-
3)去掉括号
前缀表达式: - + 1 × + 2 3 4 5
后缀表达式:1 2 3 + 4 × + 5 -
栈的顺序实现:
栈的顺序结构一般:一个一维数组和一个记录栈顶元素位置的变量构成
栈指针TOP等于:-1表示栈空,MaxSize-1表示堆栈满
出栈先判断堆栈空不空,检查TOP是不是等于 -1POP一下,然后指针TOP-1