感觉是一块比较偏门的东西,特此记录下:

逆波兰表达式:

或者叫后缀表达式,我们原先用的一直都是中缀表达式,但是因为如果表达式过长,计算机计算起来不方便。需要先遍历一边,找出其中的()进行优先计算,如果有多个()叠加的话就更麻烦了。于是为了计算机的方便计算,将中缀表达式转换成后缀表达式,计算机便可以使用栈的特性,来快速的计算一个表达式。至于逆波兰表达式这个名字,相传是因为这个波兰人的名字太复杂了,所以就用国籍命名了。

中缀表达式转化成为逆波兰表达式:

规则:从左到右遍历中缀表达式的每个数字和符号,若是数字就输出,即成为后缀表达式的一部分,若是符号,则判断其与栈顶符号的优先级,是右括号或优先级不高于栈顶符号则栈顶元素依次出栈并输出,并将当前符号进栈,只到最终输出后缀表达式为止。

例如:9+(3-1)*3+10/2

1.输出9,栈:+

2.输出93,栈+(

3.输出931,栈+(-

4.输出931-,栈+

5.输出931-3,栈+*

6.输出931-3*+,栈+

7.输出931-3*+10,栈+/

8.输出931-3*+10 2,栈+/

9.输出931-3*+10 2/+

逆波兰表达式求值:

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

例如:931-3*+10 2/+

1.栈931

2.计算3-1,栈92

3.栈923

4.计算2*3,栈96

5.计算9+6,栈15

6.栈15 10 2

7.计算10/2,栈15 5

8.计算15+5,栈20

四则运算表达式 逆波兰表达式相关推荐

  1. 数据结构:前缀,中缀,后缀表达式(逆波兰表达式)

    前缀表达式(波兰表达式) 前缀表达式的运算符位于操作数之前. 比如 (1+2)*3-4  对应的前缀表达式就是: - * + 1 2 3 4 前缀表达式的计算机求值 从右至左扫描表达式,遇到数字时,就 ...

  2. 数据结构:后缀表达式(逆波兰表达式)

    逆波兰表达式计算 package com.atchina.stack;import java.util.ArrayList; import java.util.List; import java.ut ...

  3. 前缀(波兰表达式) 中缀 后缀(逆波兰表达式)

    前缀.中缀.后缀表达式(逆波兰表达式) 本文转自https://www.cnblogs.com/chensongxian/p/7059802.html 介绍 前缀表达式.中缀表达式.后缀表达式都是四则 ...

  4. 简单计算器 逆波兰表达式

    问题 C: 悠派计算器 时间限制: 1 Sec  内存限制: 128 MB 提交: 7  解决: 2 [提交][状态][讨论版][命题人:qianyouyou] 题目描述 yoyo的小老弟小渣渣灰特别 ...

  5. 逆波兰表达式简单介绍

    逆波兰表达式又叫做后缀表达式.在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之间,所以,这种表示法也称为中缀表示.波兰逻辑学家J.Lukasiewicz于1929年提出了另一种表示表达式的 ...

  6. 数据结构-栈应用之逆波兰表达式(后缀表达式)

    逆波兰表达式含义我就不做赘述了,摘自百科上的一段话: 逆波兰表达式又叫做后缀表达式.在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之间,这种表示法也称为中缀表示.波兰逻辑学家J.Lukas ...

  7. 逆波兰表达式[栈 C 语言 实现]

    逆波兰表达式 逆波兰表达式又叫做后缀表达式.在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之间,这种表示法也称为中缀表示.波兰逻辑学家J.Lukasiewicz于1929年提出了另一种表示 ...

  8. 算法一:递归(包含Hanoi问题、N皇后问题、逆波兰表达式、爬楼梯、放苹果、全排列)

    递归 递归在算法中具有很重要的地位,也是很多学习编程的初学者非常头疼的问题,看我的这篇文章,希望能为还处于迷雾中的你带来希望 首先我们要知道递归的作用: 1.可替代多重循环 2.解决本来就是用递归形式 ...

  9. 数组结构与算法-036-042 前中后缀表达式-逆波兰计算器

    036 前缀 中缀 后缀(逆波兰表达式)表达式 前缀表达式 前缀表达式(波兰表达式) 前缀表达式又称波兰表达式,前缀表达式的运算符位于操作数之前 举例说明:(3 + 4) * 5 -6 对应的前缀表达 ...

最新文章

  1. linux 字符串转换函数 simple_strtoul 简介
  2. App.js实现使用js开发app的应用,此文是中文文档
  3. iOS 5将加入全新的通知信息和桌面Widgets
  4. python安装requests第三方模块
  5. 华为2017java笔试题_2017年java华为面试题
  6. 吴恩达,确诊新冠阳性!
  7. AS出现Error:Cause: peer not authenticated
  8. 稀疏内存模型sparsemem memory model | 文章
  9. 欧氏空间内积定义_泛函分析笔记3:内积空间
  10. 拓端tecdat|Nelsen-Siegel—Svensson扩展模型简介
  11. mysql sql
  12. 移动端 浏览器唤起【微信分享】
  13. linux音响会产生pulse文件,Linux声音系统和PulseAudio简介
  14. photoshop之小技巧
  15. QQ勋章墙工具-支持所有版本完成QQ等级加速
  16. Mysql Workbench SSL错误
  17. 鸿蒙系统如何设置双屏,华为P50 Pro曝光,魅力双屏+麒麟9000+鸿蒙系统,逃不过真香定律...
  18. win7虚拟机配置DNS服务器,Win7下VMware虚拟机共享上网图解详细设置
  19. sublime text3插件使用
  20. 数据库实验六:完整性语言实验

热门文章

  1. Echart常用折线图
  2. 关于windows更新后wifi适配器无法使用的问题。
  3. 如何打造一款专属于自己的高逼格电脑桌面
  4. JS鼠标事件实现动效
  5. 如何优雅的在 Mac 上安装fiddler [无需mono - 完美解决]
  6. 成功解决:MDK5编辑器中文乱码问题 以及设置漂亮的代码字体
  7. 【第三篇】MySQL 索引失效的常见原因【重点】
  8. 细数美国移动医疗的七大商业模式
  9. PHP基础-如何实现验证码
  10. Pycharm安装jieba(结巴)分析中文词频,案例荷塘月色词评频分析