一、中缀表达式如何转成后缀表达式?(中缀表达式-符合人类阅读、后缀表达式-符合计算机运算)
1、遍历中缀表达式中的数字和符号
2、对于数字:直接输出
3、对于符号:
左括号:进栈
运算符号:与栈顶符号进行优先级比较
若栈顶符号优先级低:此符号进栈(默认栈顶若是左括号,则左括号优先级最低)
若栈顶符号优先级不低:将栈顶符号弹出并输出,之后进栈
右括号:将栈顶符号弹出并输出,直到匹配左括号
4、遍历结束:将栈中的所有符号弹出并输出
5、eg:中缀 8+(3-1)*5 ——> 后缀 831-5*+
二、计算机如何基于后缀表达式来计算的? 如:831-5*+这个后缀表达式
1、遍历后缀表达式中的数字和符号
2、对于数字:进栈
3、对于符号:
从栈中弹出右操作数
从栈中弹出左操作数
根据符号进行计算
将运算结果压入栈中
4、遍历结束
831-5*+ ——> (3-1)*5+8