栈的四则运算的运用

中缀表达式

平时的表达式都是中缀表达式:比如1+2-(3*4)

这种符号在两个数之中的表达式叫做中缀表达式

后缀表达式

1 2 + 3 4 * - 这种运算符在数字后面的叫做后缀表达式

中缀表达式转后缀表达式:

对于数字直接输出

对于符号:

和栈顶符号进行优先级比较

如果栈顶符号优先级低,则该符号进栈(左括号是优先级最低的)

如果栈顶比要加入的符号优先级高,那么先弹出栈顶符号并输出,再进栈要进栈的符号

如果是右括号:则将栈顶符号弹出并输出,知道匹配左括号,同时将左括号和右括号舍弃

 

遍历结束:将栈中所有符号以此弹出并输出

 

后缀表达式的运算

读取到数字,将数字入栈

读取到字符:

1.将栈顶的数字作为右边的数字

2.将栈顶的下一个数字作为左边的数字

3.将读取到的字符作为表达式求值,再入栈

遍历结束:栈中的唯一数字为计算结果