前缀、中缀、后缀表达式详解

博客说明

文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!

介绍

前缀、中缀、后缀表达式是对表达式的不同记法,其区别在于运算符相对于操作数的位置不同

前缀表达式

前缀表达式的运算符位于操作数之前

计算方式

从右至左扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(栈顶元素 和 次顶元素),并将结果入栈;重复上述过程直到表达式最左端,最后运算得出的值即为表达式的结果

例如

(3+4)×5-6 对应的前缀表达式就是 - × + 3 4 5 6 , 针对前缀表达式求值步骤如下:

1、从右至左扫描,将6、5、4、3压入堆栈

2、遇到+运算符,因此弹出3和4(3为栈顶元素,4为次顶元素),计算出3+4的值,得7,再将7入栈

3、接下来是×运算符,因此弹出7和5,计算出7×5=35,将35入栈

4、最后是-运算符,计算出35-6的值,即29,由此得出最终结果

中缀表达式

中缀表达式是一种通用的算术或逻辑公式表示方法,操作符以中缀形式处于操作数的中间

中缀表达式是人们常用的算术表示方法

虽然人的大脑很容易理解与分析中缀表达式,但对计算机来说中缀表达式却是很复杂的,因此计算表达式的值时,通常需要先将中缀表达式转换为前缀或后缀表达式,然后再进行求值

对计算机来说,计算前缀或后缀表达式的值非常简单

后缀表达式

后缀表达式与前缀表达式类似,只是运算符位于两个相应操作数之后,后缀表达式也被称为后缀记法或逆波兰式

计算方式

从左至右扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(次顶元素 和 栈顶元素),并将结果入栈;重复上述过程直到表达式最右端,最后运算得出的值即为表达式的结果

例如

(3+4)×5-6 对应的后缀表达式就是 3 4 + 5 × 6 - , 针对后缀表达式求值步骤如下:

1、从左至右扫描,将3和4压入堆栈;

2、遇到+运算符,因此弹出4和3(4为栈顶元素,3为次顶元素),计算出3+4的值,得7,再将7入栈;

3、将5入栈;

4、接下来是×运算符,因此弹出5和7,计算出7×5=35,将35入栈;

5、将6入栈;

6、最后是-运算符,计算出35-6的值,即29,由此得出最终结果

感谢

尚硅谷

百度百科

以及勤劳的自己

前缀、中缀、后缀表达式详解相关推荐

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

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

  2. python【数据结构与算法】表达式(前缀中缀后缀表达式)与Two fork tree

    文章目录 1 相关概念 2 与二叉树关系 3 表达式转换 4 另一种方法 1 相关概念 前缀表达式(Prefix Notation)是指将运算符写在前面操作数写在后面的不包含括号的表达式,而且为了纪念 ...

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

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

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

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

  5. 表达式树前缀中缀后缀表达式

    表达式树( expression tree ), 表达式树的树叶是操作数( operand ),比如常数或变量,而其他的节点为操作符( operator )如: 由于这里所有的操作都是二元的,因此这棵 ...

  6. 前缀 中缀 后缀表达式2

    对于未经训练的用户来说,计算机科学领域中数学表达式求值的传统方法即不顺手又难以使用:软件工程师 Nikola.Stepan 旨在改变这些传统方法.他的 applet W3Eval 对表达式求值与您用纸 ...

  7. 前缀中缀后缀表达式介绍

    一 前缀表达式 1 前缀表达式又称波兰式,前缀表达式的运算符位于操作数之前. 2 举例 (3+4)×5-6 对应的前缀表达式是: - × + 3 4 5 6 3 前缀表达式的计算机求值过程 从右至左扫 ...

  8. 前缀 中缀 后缀表达式

    1.前缀表达式叫波兰式,后缀叫逆波兰式 2.中缀表达式转另外两个比较简单,前后缀装中缀较麻烦 3.问题分求表达式还是求值,如果是求值则需要两个栈,一个是操作符栈,一个是操作数栈,等操作符栈入栈完毕后依 ...

  9. C#数据结构-前缀中缀后缀+中缀转后缀

    目录 一.前缀中缀后缀表达式 1.中缀表达式 2.前缀表达式 3.后缀表达式 二.中缀转后缀 一.前缀中缀后缀表达式 1.中缀表达式 中缀表达式就是平常生活中计算式子的写法,例如:(3+4)*5-6  ...

最新文章

  1. RDKit | 基于RDKit计算3D药效团指纹
  2. django 解决cors问题
  3. 运用代码管理段来提升开发效率
  4. Angular async pipe在Component html模板中的一个实际应用
  5. 希赛软件设计师视频教程-3.1 进程(第三部分) 标清
  6. Web SQL介绍,web sql中增删改查、数据存储位置、运行脚本、建表建库
  7. Lc.exe已退出 代码为-1
  8. 简单图形的输入输出练习
  9. DS堆栈--迷宫求解(数据结构C语言版)
  10. dw改透明度_Dreamweaver技巧制作图片半透明效果
  11. Exif信息 处理图片上传时翻转问题
  12. 联系人管理系统 python版
  13. ABAP BYPASSING BUFFER 及 表缓存,缓冲概念 SAP
  14. echarts树状图
  15. mysql opt frm_将.frm和.opt文件导入MySQL
  16. 发布苹果App有哪些步骤流程
  17. 人生于世上有几个知己,多少友谊能长存
  18. 企业微信根据微信联系人批量自动发送邀请,还可根据手机号批量添加
  19. 清除APP 数据的时候出现Crash的情况分析
  20. 【古希腊罗马神话】期末结课论文

热门文章

  1. 牛客网 2018校招真题 招商银行信用卡 整数成绩最大化
  2. 在网页中显示数学公式
  3. #4850. 查拉图斯特拉如是说
  4. 卓帐U盘财务软件 随时随地做帐无障碍
  5. 使用Spark Streaming从kafka中读取数据把数据写入到mysql 实例
  6. 2023年天津理工大学中环信息学院专业课考试具体安排
  7. 基于 wemos d1 智能感应开盖垃圾桶
  8. 诤言只能对诤友《基层风云·1》·一
  9. 网易推出暴雪绿茶,太内涵了!
  10. 思科认证有用吗?怎么报名呢?