计算机如何计算我们的表达式的

计算机的工作本质就是做数学运算,计算机喜欢做后缀运算,而我们自己却是喜欢做中缀运算,

所以计算机就会自动将我们的中缀运算转化成后缀运算,现在我们自己通过栈的应用来实现以下这个功能。

例如:5+4=>54+

1+2*3=>123*+

在转化之前我们得知道计算机是如何做的转化,下面我们就来看一下这个算法

1遍历中缀表达式的数字的符号,对于数字,直接输出。

2对于符号:左括号:进栈

                    运算符号:与栈顶符号进行优先级比较,若栈顶符号优先级低,则符合进栈(默认栈顶若是左括号。左括号优先级最低)。若栈顶符号优先级不低,将栈顶符号弹出并输出,之后进栈。

                     右括号:将栈顶符号弹出并输出,直到匹配左括号。

3遍历结束:将栈中的所有符号弹出并输出。

在转化之后计算机又是如何计算后缀的表达式的呢?下面看一下算法

1遍历后缀表达式中的数字和符号

2对于数字:进栈

对于符号:从栈中弹出右操作数,再从栈中弹出左操作数,根据符号进行运算,将运算结果压入栈中。

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

猜你喜欢

转载自blog.csdn.net/qianyayun19921028/article/details/81149845