称9+(3-1)*5+10/2这样的表达式为中缀表达式,称9 3 1 - 3 * + 10 2 / +这样的形式为后缀(逆波兰 RPN)表达式(数字在前运算符在后)。
一、将中缀表达式转为后缀表达式:
1、遍历中缀表达式中的数字和符号
①对于数字:直接输出(即直接成为后缀表达式的一部分);
②对于符号:
1`左括号:进栈;
2`符号:与栈顶符号进行优先级比较
· 栈顶符号优先级低则进栈;
· 栈顶符号优先级不低则将栈顶符号弹出并输出之后 再将此符号压入栈中;
3`右括号:将栈顶符号弹出并输出,知道匹配左括号(左括号也弹出);
2、遍历结束:
将栈中的所有符号弹出并输出。

这篇博客介绍了如何将中缀表达式转换为后缀表达式,并通过后缀表达式进行四则运算。首先,遍历中缀表达式,处理数字和符号,遇到左括号进栈,遇到右括号则弹出栈顶符号直到匹配到左括号。接着,遍历后缀表达式,数字进栈,符号则弹出栈顶两个数字进行运算并将结果压回栈中。最终,栈中唯一数字即为运算结果。
最低0.47元/天 解锁文章
437

被折叠的 条评论
为什么被折叠?



