数组和线性表.pptVIP

  • 1
  • 0
  • 约6.51千字
  • 约 57页
  • 2022-04-03 发布于四川
  • 举报
2. 堆栈在表达式计算中的应用 一个算术表达式,例如A+B,其中加号“+”称作运算符,而A,B称为运算数。 对于由两个运算数和一个运算符组成的表达式,习惯上是将运算符写在两个运算数中间,这叫做中缀形式。 计算机处理表达式时,常把运算符放在两个运算数的后面或前面。 1. 把运算符放在两个运算数的后面,例如 AB+ ,称为后缀形式,也叫做波兰式 。 2. 把运算符放在两个运算数的前面,例如 +AB,则称做前缀形式,也叫做逆波兰表达式。 第二章 数组与线性表 算术表达式的不同运算符有不同的运算优先顺序,如,在没有括号时,乘除运算(*或/)要比加减运算(+或-)优先进行。 下面用一个简单的例子说明编译系统在处理算术表达式时,是如何应用堆栈这种数据结构的。 假定表达式的运算数都是使用单个字母表示的,式中无括号且只有加、减、乘、除4种运算,而没有更复杂的运算,例如表达式 X+Y*Z。 第二章 数组与线性表 使用S1和S2两个堆栈,S1用于存储运算数,S2用于存储运算符。 编译系统处理时,将表达式从左向右逐个扫视一遍,并根据不同情况按以下原则处理: 1) 若是运算数,则将其压入S1栈; 2) 若是运算符且S2栈是空栈则将其压入 S2栈; 3) 若是运算符且S2栈为非空栈,且此运算符的级别高于S2栈顶运算符的级别,则将此运算符压入S2栈; 4) 凡不属于上面三条的情况,则将S

文档评论(0)

1亿VIP精品文档

相关文档