中关村在线

软件

C++计算后缀表达式

面对一个包含加减乘除的混合运算表达式时,如何准确求值?通常可借助栈这一数据结构来实现。整个过程分为两步:首先将中缀表达式转换为后缀表达式,然后计算后缀表达式的数值。关于中缀转后缀的方法此前已有介绍。本文重点讲解如何利用栈结构来求解后缀表达式的值。通过从左到右扫描后缀表达式,遇到操作数时入栈,遇到运算符时弹出栈顶两个元素进行相应运算,并将结果重新压入栈中,最终栈内唯一剩余的元素即为表达式的计算结果。

1、 以该后缀表达式为例进行计算:

2、 对应的中缀表达式是((2+3)×8+5+3)×6。

3、 构建一个堆栈结构

4、 从左至右遍历后缀表达式,依次将操作数存入栈中。

5、 若扫描到操作数,应将其存入堆栈结构中。

6、 当扫描到操作符时,从堆栈中弹出两个操作数,用该操作符对它们进行运算,并将结果压入堆栈。

7、 当后缀表达式扫描结束后,栈中唯一剩下的数值即为最终计算结果。

8、 以下是我根据该算法编写的代码,供参考使用。

9、 大家可结合自身想法自由发挥创作。

10、 {

11、 {

12、 {

13、 }

14、 {

15、 }

16、 {

17、 }

18、 }

19、 }

展开全文
人赞过该文
内容纠错

相关电商优惠

评论

更多评论
还没有人评论~ 快来抢沙发吧~

读过此文的还读过

点击加载更多

内容相关产品

说点什么吧~ 0

发评论,赚金豆

收藏 0 分享
首页查报价问答论坛下载手机笔记本游戏硬件数码影音家用电器办公打印 更多

更多频道

频道导航
辅助工具