- 与队的区别
- 只有表示栈顶的top
- 使用栈实现一个计算器
- 对于没有括号的待计算表达式计算如下
-
1、通过一个index值(索引),来遍历表达式 2、如果发现是一个数字,就直接入数栈 3、如果发现扫描到是一个符号,就分如下情况 1、如果发现当前的符号栈为空,就直接入栈 2、如果符号栈有操作符就作如下操作 1、如果当前的操作符的优先级次小于或等于栈中的操作符,就需要从数栈中pop出两个数,再从符号栈中pop出一个符号们进行运算,将运算结果再入数栈,然后将当前的操作符入符号栈 2、如果当前的操作符的优先级大于栈中的操作符,就直接入符号栈 4、当表达式的值扫描完毕,就顺序的从数栈和符号栈中pop出相应的数和符号,并运行 5、最后在数栈只有一个数字,就是表达式的结果
-
- 对于有括号的,需要进行中缀转后缀,或者中缀转前缀后再进行计算(转换的步骤都是死的,用到就去查看)
- 对于没有括号的待计算表达式计算如下
数组实现栈
于 2023-03-12 10:28:06 首次发布