为了解释后缀表达式的好处,我们先来看看,计算机如何应用后缀表达式计算出最终的结果20的。

后缀表达式:9 3 1-3*+ 10 2/+

  • 规则:从左到右遍历表达式的每个数字和符号,遇到是数字就进栈,遇到是符号,就将处于栈顶两个数字出栈,进行运算,运算结果进栈,一直到最终获得结果。

下面是详细的步骤:

1. 初始化一个空栈。此桟用来对要运算的数字进出使用。

2. 后缀表达式中前三个都是数字,所以9、3、1进栈。

3. 接下来是减号“-”,所以将栈中的1出栈作为减数,3出栈作为被减数,并运算3-1得到2,再将2进栈。

4. 接着是数字3进栈。

5. 后面是乘法“*”,也就意味着栈中3和2出栈,2与3相乘,得到6,并将6进栈。

6. 下面是加法“+”,所以找中6和9出找,9与6相加,得到15,将15进栈。

7. 接着是10与2两数字进栈。

8. 接下来是符号因此,栈顶的2与10出栈,10与2相除,得到5,将5进栈。

9. 最后一个是符号“+”,所以15与5出找并相加,得到20,将20进栈。

10. 结果是20出栈,栈变为空。

  • 果然,后缀表达法可以很顺利解决计算的问题。但是我有个疑问,就是这个后缀表达式“9 3 1-3*+ 10 2/+”是如何通过算式“9+(3-1)*3+10/2”变化而来呢?

图解后缀表达式的计算过程相关推荐

  1. Java堆栈的应用2----------中缀表达式转为后缀表达式的计算Java实现

    1.堆栈-Stack 堆栈(也简称作栈)是一种特殊的线性表,堆栈的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置进行插入和删除操作,而堆栈只允许在固定一端进行插入和删除 ...

  2. 栈应用(中缀表达式转后缀表达式并计算后缀表达式的值)

    [0]README 0.1) 本文旨在总结 中缀表达式转后缀表达式并计算后缀表达式的值 的步骤,并给出源代码实现: 0.2) 本文中涉及到的源代码均为原创,是对中缀转后缀和计算后缀的简单实现,(旨在理 ...

  3. 阿龙学堂-中缀-后缀表达式的计算

    1.简介 在数据结构中,有一种数据结构叫做:Stack,LIFO(Last In First Out),在这个结构中,有个后缀表达式计算,运用该数据结构进行计算. 栈是一种只允许一端操作的线性数据结构 ...

  4. Python生成后缀表达式及计算

    1. 什么是后缀表达式 后缀表达式(也叫做逆波兰式或逆波兰记法),其实就是将运算符写在操作数之后的式子.比如我们平时写a+b,这是中缀表达式,写成后缀表达式就是ab+.下面来看一个更复杂的例子: 求( ...

  5. 数据结构与算法——中缀转后缀表达式以及计算

    中缀表达式转后缀表达式 思路分析: 初始化两个栈:运算符栈s1 和储存中间结果的栈s2 从左至右扫描中缀表达式 遇到操作数,将其压入s2 遇到运算符时,比较其与s1 栈顶运算符的优先级 如果s1 为空 ...

  6. 前缀、中缀和后缀表达式详解,中缀表达式到后缀表达式的转换规则,以及后缀表达式的计算规则,附计算代码

    1. 中缀.前缀和后缀表达式 1.1 中缀表达式 首先,中缀表达式的这个"缀"指运算符在两个操作数的位置.中缀表达式其实就是我们常用的算术表达式,比如 2 + 9 - (32 * ...

  7. 《数据结构》:中缀表达式转后缀表达式 后缀表达式的计算

    目录 一.基本概念 二.中缀表达式转后缀表达式 例       中缀表达式  2*(3+5)+7/1-4  转换为后缀表达式 三.后缀表达式的计算 例       后缀表达式  2 3 5 + * 7 ...

  8. 中缀转后缀表达式并计算

    注:本博客是基于<数据结构>这门课,主要是为了自己考研,准备专业课 图解转自:中缀转后缀算法 中缀转后缀算法 中缀表达式转后缀表达式遵循以下原则: 遇到操作数,直接输出 当栈为空时,若遇到 ...

  9. 前缀中缀后缀表达式的计算求值

    原文在这里 表达式 前缀表达式(波兰表达式) 前缀表达式又称波兰式,前缀表达式的运算符位于操作数之前 举例说明: (3+4)×5-6 对应的前缀表达式就是 - × + 3 4 5 6 前缀表达式求值 ...

最新文章

  1. HDU 1406 完数
  2. 不使用fastreport自带的条码组件打印快递单(一款很不错的条码组件下载)
  3. 所有的经历都是财富 --致我的2016
  4. 成功解决没有tf.nn.rnn_cell属性
  5. 攻防世界Reverse第六题open-source
  6. ssm使用全注解实现增删改查案例——IDeptService
  7. macOS 使用手册
  8. gp数据库迁移数据到mysql_greenplum数据迁移
  9. TensorFlow YOLO3
  10. Android 实现 欢迎界面 自动跳转 到 主界面
  11. 怎么用微信打开qq连接到服务器地址,微信上能打开的链接如何在qq上打?
  12. vue-oss阿里云上传图片
  13. 关于微信无法登陆网页版的问题
  14. VMware虚拟机启动错误(正在被占用、内部错误)等问题
  15. windows渗透利器——PentestBox的内功和攻击力
  16. 青藤 #44 比例简化
  17. struts2升级到2.5.30总结
  18. SpringBoot项目打包发布
  19. Android商城App购物车规格联动选择
  20. java false 0_Java中false指的是1还是0

热门文章

  1. mac pycharm安装设置_入门python,这样操作,简单易学(安装教程)
  2. 曾为浮云遮望眼,平沙莽莽黄入天。 终有一缘得一道,拨开云雾见青天! ——论如何快速删除上亿级数据集思路
  3. android开花动画,15款界面最漂亮Android应用程序揭晓
  4. java数据导出ex_Java高级特性注解:注解实现Excel导出功能
  5. 效果直逼flash的Div+Css+Js菜单
  6. 利用 QQWry.Dat 实现 IP 地址高效检索(PHP)
  7. 钉钉新增“下班勿扰”功能:次日上班前不接受任何消息!
  8. iPhone 14系列贴膜曝光:将采用开孔屏方案 四边框极窄
  9. 苹果推出“轻触支付”新方式 目前仅面向美国
  10. 男子花41万买手镯,被店员议论“买不起” 气到要住院