前缀、中缀、后缀表达式详解
前缀、中缀、后缀表达式详解
博客说明
文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!
介绍
前缀、中缀、后缀表达式是对表达式的不同记法,其区别在于运算符相对于操作数的位置不同
前缀表达式
前缀表达式的运算符位于操作数之前
计算方式
从右至左扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(栈顶元素 和 次顶元素),并将结果入栈;重复上述过程直到表达式最左端,最后运算得出的值即为表达式的结果
例如
(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 中缀表达式 首先,中缀表达式的这个"缀"指运算符在两个操作数的位置.中缀表达式其实就是我们常用的算术表达式,比如 2 + 9 - (32 * ...
- python【数据结构与算法】表达式(前缀中缀后缀表达式)与Two fork tree
文章目录 1 相关概念 2 与二叉树关系 3 表达式转换 4 另一种方法 1 相关概念 前缀表达式(Prefix Notation)是指将运算符写在前面操作数写在后面的不包含括号的表达式,而且为了纪念 ...
- 数据结构:前缀,中缀,后缀表达式(逆波兰表达式)
前缀表达式(波兰表达式) 前缀表达式的运算符位于操作数之前. 比如 (1+2)*3-4 对应的前缀表达式就是: - * + 1 2 3 4 前缀表达式的计算机求值 从右至左扫描表达式,遇到数字时,就 ...
- 前缀中缀后缀表达式的计算求值
原文在这里 表达式 前缀表达式(波兰表达式) 前缀表达式又称波兰式,前缀表达式的运算符位于操作数之前 举例说明: (3+4)×5-6 对应的前缀表达式就是 - × + 3 4 5 6 前缀表达式求值 ...
- 表达式树前缀中缀后缀表达式
表达式树( expression tree ), 表达式树的树叶是操作数( operand ),比如常数或变量,而其他的节点为操作符( operator )如: 由于这里所有的操作都是二元的,因此这棵 ...
- 前缀 中缀 后缀表达式2
对于未经训练的用户来说,计算机科学领域中数学表达式求值的传统方法即不顺手又难以使用:软件工程师 Nikola.Stepan 旨在改变这些传统方法.他的 applet W3Eval 对表达式求值与您用纸 ...
- 前缀中缀后缀表达式介绍
一 前缀表达式 1 前缀表达式又称波兰式,前缀表达式的运算符位于操作数之前. 2 举例 (3+4)×5-6 对应的前缀表达式是: - × + 3 4 5 6 3 前缀表达式的计算机求值过程 从右至左扫 ...
- 前缀 中缀 后缀表达式
1.前缀表达式叫波兰式,后缀叫逆波兰式 2.中缀表达式转另外两个比较简单,前后缀装中缀较麻烦 3.问题分求表达式还是求值,如果是求值则需要两个栈,一个是操作符栈,一个是操作数栈,等操作符栈入栈完毕后依 ...
- C#数据结构-前缀中缀后缀+中缀转后缀
目录 一.前缀中缀后缀表达式 1.中缀表达式 2.前缀表达式 3.后缀表达式 二.中缀转后缀 一.前缀中缀后缀表达式 1.中缀表达式 中缀表达式就是平常生活中计算式子的写法,例如:(3+4)*5-6 ...
最新文章
- RDKit | 基于RDKit计算3D药效团指纹
- django 解决cors问题
- 运用代码管理段来提升开发效率
- Angular async pipe在Component html模板中的一个实际应用
- 希赛软件设计师视频教程-3.1 进程(第三部分) 标清
- Web SQL介绍,web sql中增删改查、数据存储位置、运行脚本、建表建库
- Lc.exe已退出 代码为-1
- 简单图形的输入输出练习
- DS堆栈--迷宫求解(数据结构C语言版)
- dw改透明度_Dreamweaver技巧制作图片半透明效果
- Exif信息 处理图片上传时翻转问题
- 联系人管理系统 python版
- ABAP BYPASSING BUFFER 及 表缓存,缓冲概念 SAP
- echarts树状图
- mysql opt frm_将.frm和.opt文件导入MySQL
- 发布苹果App有哪些步骤流程
- 人生于世上有几个知己,多少友谊能长存
- 企业微信根据微信联系人批量自动发送邀请,还可根据手机号批量添加
- 清除APP 数据的时候出现Crash的情况分析
- 【古希腊罗马神话】期末结课论文