前言
最近在看数据结构,遇到第一个实际栈的应用,记录
一、实现四则运算
将平时的四则运算表达式又称为中缀表达式转化为后缀表达式。
二、使用步骤
1.先将四则运算表达式转化为后缀表达式
遇数字输出,遇符号进栈,符号优先级低于栈当前符号则输出,输出直到同等优先级符号。
例:9+(3-1)*2
输出 栈
9 … +(in)
9 … + ((in)
9 3 … + (
9 3 … + ( -(in)
9 3 1 … + ( -
9 3 1 … + ( - )(in) 【右括号进栈,则输出-,变成 9 3 1 -】
9 3 1 - … + *(in)
9 3 1 - 2 … + * 【此时数字全部结束,则符号全部出栈,按照栈的特性,最后结果是9 3 1 - 2 * +】
2.对后缀表达式进行运算
9 3 1 - 2 * +
数字全部进栈,遇到符号,则将栈顶两元素出栈进行运算
9 3 1进栈,-进栈,则将3 1进行-运算,得2,则为9 2,继续2入栈 9 2 2,入栈,22=4,则得 9 4 +,最后结果为13。
总结
转化时运用栈进出运算的符号;计算时运用栈进出运算的数字。