数据结构-2.2堆栈

疑难点:后缀表达式的入栈出栈操作

中缀,前缀,后缀表达式

## 中缀表达式转化为前缀和后缀表达式

转化步骤:

  1. 按照运算符的优先级对所有的运算单位加括号
  2. 将运算符移动到对应括号的前面(前缀表达式)或后面(后缀表达式)
  3. 去掉括号,得到前缀或后缀表达式

示例:

中缀表达式: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

 

 

posted @ 2020-05-09 22:08  路漫漫兮其修远  阅读(127)  评论(0编辑  收藏  举报