当前位置: 首页 > news >正文

波兰式与逆波兰式【1】

三种算术表达式

中缀表达式:就是类似于数学里手写的式子。例子: 4 + 2 × 3 − 10 / 5 4+2\times3-10/5 4+2×310/5 a + b ∗ c − d / e a+b*c-d/e a+bcd/e

后缀表达式运算符在前,其运算符的两个操作数相对在后的表达式(“运算数 运算数 运算符”),也称“逆波兰式”

中缀表达式					后缀表达式
a+b							ab+
a+b*c-d/e					abc*+de/-
10/(7-(1+2))*3				10712+-/3*
10/(7-(1+2))*3-(2+(1+1))	10712+-/3*211++-

转换步骤:(中–>后),注:括号不计入后缀表达式,
① 确定表达式的各个运算符的转换次序(先转换哪个后转换哪个),对于同级
例如: 15 / ( 7 − ( 1 + 2 ) ⏟ 1 ⏟ 2 ) ⏟ 3 ∗ 3 ⏟ 4 \underbrace{\underbrace{15/(\underbrace{7-\underbrace{(1+2)}_{1}}_{2})}_{3}*3}_{4} 4 3 15/(2 71 (1+2))3
②按照确定好的次序以及黄字部分的规则,依次把子中缀表达式变为子后缀表达式并组合成一个新的操作数
第一步:括号优先级最高,先转换括号里的,(1+2) —> 12+ ,表达式12+看作一个新的运算数,我用一个[ ]括起来视为整体,原表达式变为: 15 / ( 7 − [ 12 + ] ) ∗ 3 15/(7-[12+])*3 15/(7[12+])3
第二步:(7-[12+])—> 7[12+]-,去掉 [ ] 变为:712+ - 然后又把它视为一个新运算数,用[ ]括起来,则原表达式变为: 15 / [ 712 + − ] ∗ 3 15/[712+-]*3 15/[712+]3
第三步:15/[712+ -]—>15[712+ -] 去掉 [ ] 变为:15712+ -/ 然后又把它视为一个新运算数…

③重复②的操作,直到每个运算次序对应的表达式都转换,最后剩下一个表达式-----后缀表达式
注意:由于有些表达式之间的运算符优先级相同,因此可能导致后缀表达式的结果不一致,例如:
a + b ∗ c − d / e a+b*c-d/e a+bcd/e的次序可能是: a + b ∗ c ⏟ 1 − d / e ⏟ 2 ⏟ 3 ⏟ 4 \underbrace{a+\underbrace{\underbrace{b*c}_{1}-\underbrace{d/e}_{2}}_{3}}_{4} 4 a+3 1 bc2 d/e a + b ∗ c ⏟ 1 ⏟ 2 − d / e ⏟ 3 ⏟ 4 \underbrace{\underbrace{a+\underbrace{b*c}_{1}}_{2}-\underbrace{d/e}_{3}}_{4} 4 2 a+1 bc3 d/e,这就导致对于同一个中缀表达式转换后的后缀表达式结果不一样,因此规定一种顺序----优先转换左边的表达式("尽量"先左),例如①中,对于2次序到3次序

前缀表达式:和后缀表达式恰好反过来,运算符在后,其对应的操作数相对在前的表达式(“运算符 运算数 运算数”)。
转换步骤:和中转“后”的步骤相似:①②③,区别:中转”前“的步骤③中确定表达式的运算符转换次序不是左右先而是右边优先—即优先转换右边的表达式(”尽量先右“)


http://www.mrgr.cn/news/52116.html

相关文章:

  • 苍穹外卖学习笔记(二十四)
  • 人工智能 | MetaLlama大模型
  • 通用代码生成器与编程初学者的“第一个系统”
  • 【python】生成环境下依赖的关系拓扑图
  • Spring Boot环境下的图书进销存管理系统
  • 看了大厂用AI审简历,我才发现社会的残酷真相!今年的秋招太可怕了
  • etcd集群修复异常节点
  • SpringBoot长江驾校学员预约系统-计算机毕业设计源码86072
  • 从牛顿第一定律看待人生
  • AMR Codec参数在SDP中的详细解析及其与AMR编解码的关系
  • 查找资料网站:
  • 云开发 | 如何获取用户输入数据,并且在云数据库中删除该条数据
  • > Invalid revision: 3.22.1-g37088a8-dirty
  • 【优选算法】(第四十五篇)
  • 浅谈dll劫持-白加黑免杀指南
  • WebSocket
  • labelme标注的json转Yolo格式【ultralytics工具】
  • 在掌控板上搭建http服务器
  • 你的收入达到了缴纳个人所得税的标准了吗?
  • 怎么把音乐中的人声去掉?轻松搞定,音乐伴奏去人声攻略