Java数据结构和算法-栈实现综合计算器-思路分析(1)

使用栈完成计算一个表达式的结果

7*2*2-5+1-5+3-4=?

使用栈完成表达式的计算思路
1.通过一个index值(索引),来遍历我们的表达式
2.如果我们发现是一个数字,就直接入数栈
3.如果发现扫描到的是一个符号,就分如下情况:

  • 3.1如果发现当前的符号栈为空,就直接入栈
  • 3.2如果发现符号栈有操作符,就进行比较,如果当前的操作符的优先级小于或者等于栈中的操作符,就需要从数栈中pop出两个数,在从符号栈中pop出一个符号,进行运算,将得到的结果,入数栈,然后将当前的操作符入符号栈,如果当前的操作符的优先级大于栈中的操作符,就直接入符号栈

4.当表达式扫描完毕之后,就顺序的从数栈和符号栈中pop出相应的数和符号,并运算。
5.最后在数栈只有一个数字,就是表达式的结果。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容