通过栈stack来计算后缀表达式的结果,看到最后,我相信你一定会有以外的收获~
作者:互联网
思路:
遍历后缀表达式的字符:
- 1.遍历到的是运算数时,直接入栈
- 2.遍历到的是运算符时,连续出栈两次
- 3.计算“第二次出栈的运算数 运算符 第一次出栈的运算数”得到A(例如:第二次出栈的运算数是 2, 第一次出栈的运算数 5 ;运算符是 +,那么就是 2 + 5)
- 4.将A入栈,继续遍历
- 5.遍历结束,弹出占中结果,即为最终结果
例子:
计算“2 3 + 1 5 2 + 7 / 3 - * -”的结果,对于“/”我们是将结果向下取整
- 第一步:指正指向2,符合1
- 第二步:指正指向3,符合1
- 第三步:指针指向+,符合2,3,4
- 第四步:指针指向1,符合1
- 第五步:指针指向5,符合1
- 第六步:指针指向2,符合1
- 第七步:指针指向+,符合2, 3,4
- 第八步:指针指向7,符合1
- 第九步:指针指向/,符合2,3,4
- 第十步:指针指向3,符合1
- 第十一步:指针指向-,符合2, 3,4
- 第十二步:指针指向*,符合2, 3,4
- 第十三步:指针指向-,符合2, 3,4
- 第十四步:遍历结束,符合5
补充:
一步情况下,不会要求我们直接进行计算后缀表达式的计算结果,而是会先让我们将中缀表达式转换成后缀表式【点击查看】,然后进行计算
标签:遍历,出栈,指向,后缀,符合,stack,表达式,指针 来源: https://blog.csdn.net/m0_45067620/article/details/117060555