四则运算表达式 逆波兰表达式
感觉是一块比较偏门的东西,特此记录下:
逆波兰表达式:
或者叫后缀表达式,我们原先用的一直都是中缀表达式,但是因为如果表达式过长,计算机计算起来不方便。需要先遍历一边,找出其中的()进行优先计算,如果有多个()叠加的话就更麻烦了。于是为了计算机的方便计算,将中缀表达式转换成后缀表达式,计算机便可以使用栈的特性,来快速的计算一个表达式。至于逆波兰表达式这个名字,相传是因为这个波兰人的名字太复杂了,所以就用国籍命名了。
中缀表达式转化成为逆波兰表达式:
规则:从左到右遍历中缀表达式的每个数字和符号,若是数字就输出,即成为后缀表达式的一部分,若是符号,则判断其与栈顶符号的优先级,是右括号或优先级不高于栈顶符号则栈顶元素依次出栈并输出,并将当前符号进栈,只到最终输出后缀表达式为止。
例如: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+2)*3-4 对应的前缀表达式就是: - * + 1 2 3 4 前缀表达式的计算机求值 从右至左扫描表达式,遇到数字时,就 ...
- 数据结构:后缀表达式(逆波兰表达式)
逆波兰表达式计算 package com.atchina.stack;import java.util.ArrayList; import java.util.List; import java.ut ...
- 前缀(波兰表达式) 中缀 后缀(逆波兰表达式)
前缀.中缀.后缀表达式(逆波兰表达式) 本文转自https://www.cnblogs.com/chensongxian/p/7059802.html 介绍 前缀表达式.中缀表达式.后缀表达式都是四则 ...
- 简单计算器 逆波兰表达式
问题 C: 悠派计算器 时间限制: 1 Sec 内存限制: 128 MB 提交: 7 解决: 2 [提交][状态][讨论版][命题人:qianyouyou] 题目描述 yoyo的小老弟小渣渣灰特别 ...
- 逆波兰表达式简单介绍
逆波兰表达式又叫做后缀表达式.在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之间,所以,这种表示法也称为中缀表示.波兰逻辑学家J.Lukasiewicz于1929年提出了另一种表示表达式的 ...
- 数据结构-栈应用之逆波兰表达式(后缀表达式)
逆波兰表达式含义我就不做赘述了,摘自百科上的一段话: 逆波兰表达式又叫做后缀表达式.在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之间,这种表示法也称为中缀表示.波兰逻辑学家J.Lukas ...
- 逆波兰表达式[栈 C 语言 实现]
逆波兰表达式 逆波兰表达式又叫做后缀表达式.在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之间,这种表示法也称为中缀表示.波兰逻辑学家J.Lukasiewicz于1929年提出了另一种表示 ...
- 算法一:递归(包含Hanoi问题、N皇后问题、逆波兰表达式、爬楼梯、放苹果、全排列)
递归 递归在算法中具有很重要的地位,也是很多学习编程的初学者非常头疼的问题,看我的这篇文章,希望能为还处于迷雾中的你带来希望 首先我们要知道递归的作用: 1.可替代多重循环 2.解决本来就是用递归形式 ...
- 数组结构与算法-036-042 前中后缀表达式-逆波兰计算器
036 前缀 中缀 后缀(逆波兰表达式)表达式 前缀表达式 前缀表达式(波兰表达式) 前缀表达式又称波兰表达式,前缀表达式的运算符位于操作数之前 举例说明:(3 + 4) * 5 -6 对应的前缀表达 ...
最新文章
- linux 字符串转换函数 simple_strtoul 简介
- App.js实现使用js开发app的应用,此文是中文文档
- iOS 5将加入全新的通知信息和桌面Widgets
- python安装requests第三方模块
- 华为2017java笔试题_2017年java华为面试题
- 吴恩达,确诊新冠阳性!
- AS出现Error:Cause: peer not authenticated
- 稀疏内存模型sparsemem memory model | 文章
- 欧氏空间内积定义_泛函分析笔记3:内积空间
- 拓端tecdat|Nelsen-Siegel—Svensson扩展模型简介
- mysql sql
- 移动端 浏览器唤起【微信分享】
- linux音响会产生pulse文件,Linux声音系统和PulseAudio简介
- photoshop之小技巧
- QQ勋章墙工具-支持所有版本完成QQ等级加速
- Mysql Workbench SSL错误
- 鸿蒙系统如何设置双屏,华为P50 Pro曝光,魅力双屏+麒麟9000+鸿蒙系统,逃不过真香定律...
- win7虚拟机配置DNS服务器,Win7下VMware虚拟机共享上网图解详细设置
- sublime text3插件使用
- 数据库实验六:完整性语言实验