数据结构6:表达式求值
表达式求值
C语言表达式求值是一个综合优先级、结合性、类型转换和副作用处理的复杂过程。
表达式的书写形式有中缀表达式和后缀表达式两种。
中缀表达式是人类最常用的数学表达式形式,其特点是运算符位于两个操作数中间,后缀表达式将运算符置于操作数之后,后缀表达式使用栈结构对于计算机具有很高的计算效率。
实例
82/2+56*-
是一个后缀表达式。
- 数字8入栈,位于栈的底层。
- 数字2入栈
- 运算符
/
入栈,以取栈顶的两个元素,靠近栈底元素为中缀表达式的第一项为原则执行8/2 == 4 - 和4被压入栈中
- 数字2入栈
- 继续计算直到-
- 将最后的元素弹出,返回给输入参数