下你所需,载你所想!
汇集开发技术源码资料

算术表达式的计算,中缀表达式转后缀表达式

:4.334KB :1 :2023-02-02 16:01:05

部分简介

直到现在,学到的知识储备已经能够支撑我实现当年未实现的代码。
(其实就是中缀表达式转后缀表达式的实现)
下面是大致的实现过程
1、把算术表达式,转换城后缀表达式。
转换过程:
先定义一个数组和一个栈变量
1:遍历表达式,遇到数字的话直接加入到,后缀表达式数组里。
2:遇到运算符和(,则先加入到运算符栈里。加入的规则是,运算符优先级高于栈定运算符时,直接加入。优先级低于时,则先把栈顶运算符移到后缀表达式数组里,直到加入运算符优先级高于栈顶运算符优先级后再加入到运算符栈里。如果遇到 )时,则把()内的全部运算符先移到后缀表达式数组里。
2、遍历后缀表达式数组,进行计算。
例子:12 + ((2 + 5 * 2) - 10)/ 2
后缀表达式: 12 2 5 2 * + 10 - 2 / +
计算过程如下:
12 2 5 2 * + 10 - 2 / +
5 * 2 = 10 >>> 12 2 10 + 10 - 2 / +
2 + 10 = 12 >>> 12 12 10 - 2 / +
12 - 10 = 2 >>> 12 2 2 / +
2 / 2 = 1 >>> 12 1 +
12 + 1 = 13
计算结果为:13

算术表达式的计算,中缀表达式转后缀表达式

热门推荐

相关文章