使用栈完成计算一个表达式的结果
7*2*2-5+1-5+3-4=?
使用栈完成表达式的计算思路
1.通过一个index值(索引),来遍历我们的表达式
2.如果我们发现是一个数字,就直接入数栈
3.如果发现扫描到的是一个符号,就分如下情况:
- 3.1如果发现当前的符号栈为空,就直接入栈
- 3.2如果发现符号栈有操作符,就进行比较,
如果当前的操作符的优先级小于或者等于栈中的操作符
,就需要从数栈中pop出两个数,在从符号栈中pop出一个符号,进行运算,将得到的结果,入数栈,然后将当前的操作符入符号栈,如果当前的操作符的优先级大于栈中的操作符
,就直接入符号栈
4.当表达式扫描完毕之后,就顺序的从数栈和符号栈中pop出相应的数和符号,并运算。
5.最后在数栈只有一个数字,就是表达式的结果。