数据结构6:表达式求值

表达式求值

C语言表达式求值是一个综合优先级、结合性、类型转换和副作用处理的复杂过程。

表达式的书写形式有中缀表达式后缀表达式两种。

中缀表达式是人类最常用的数学表达式形式,其特点是运算符位于两个操作数中间,后缀表达式将运算符置于操作数之后,后缀表达式使用栈结构对于计算机具有很高的计算效率。

实例

82/2+56*-是一个后缀表达式。

  • 数字8入栈,位于栈的底层。
  • 数字2入栈
  • 运算符/入栈,以取栈顶的两个元素,靠近栈底元素为中缀表达式的第一项为原则执行8/2 == 4
  • 和4被压入栈中
  • 数字2入栈
  • 继续计算直到-
  • 将最后的元素弹出,返回给输入参数