数据结构:前缀,中缀,后缀表达式(逆波兰表达式)
前缀表达式(波兰表达式)
前缀表达式的运算符位于操作数之前。
比如 (1+2)*3-4 对应的前缀表达式就是: - * + 1 2 3 4
前缀表达式的计算机求值
从右至左扫描表达式,遇到数字时,就将数字压入栈顶,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(栈顶元素和次顶元素),并将结果入栈;重复上述过程直到表达式最左端,最后运算得出的值即为表达式的结果。
例如: (1+2)*3-4对应的前缀表达式就是 - * + 1 2 3 4, 针对前缀表达式求值步骤如下:
1). 从右至左扫描, 将4 3 2 1压入堆栈.
2). 遇到+运算符,因此弹出1和2(1位栈顶元素,2位次顶元素),计算出1+2的值,得3,再将3入栈
3). 接下来是*运算符,因此弹出3和3,计算出3*3=9,将9压入栈
4). 最后是 - 运算符,计算出9-4的值,即5,由此得出最终结果.
中缀表达式
中缀表达式就是我们最常见的运算表达式, (1+2)*3-4.
中缀表达式是人们最常见的形式, 但对计算机来说却不好操作,因此往往会把中缀表达式转成其他表达式来操作(一般是后缀表达式)
后缀表达式(逆波兰表达式)
同前置表达式相似,只是运算符位于操作数之后。
(1+2)*3-4的后缀表达式就是1 2 + 3 * 4 -
正常表达式 a+b , 逆波兰表达式 a b +
正常表达式 a+(b-c) , 逆波兰表达式 a b c - +
正常表达式 a+(b-c)*d , 逆波兰表达式 a b c - d * +
正常表达式 a+d*(b-c) , 逆波兰表达式 a d b c - * +
正常表达式 a=1+3 , 逆波兰表达式 a 1 3 + =
后缀表达式的计算机求值
从左至右扫描表达式,遇到数字时,就将数字压入栈顶,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(栈顶元素和次顶元素),并将结果入栈;重复上述过程直到表达式最右端,最后运算得出的值即为表达式的结果。
例如: (1+2)*3-4对应的后缀表达式就是1 2 + 3 * 4 -, 针对前缀表达式求值步骤如下:
1). 从左至右扫描, 将1 2压入堆栈.
2). 遇到+运算符,因此弹出2和1(2位栈顶元素,1位次顶元素),计算出1+2的值,得3,再将3入栈
3) 将3入栈.
4) 接下来是*运算符,因此弹出3和3,计算出3*3=9,将9入栈.
5) 将4入栈
6). 最后是 - 运算符,计算出9-4的值,即5,由此得出最终结果.
数据结构:前缀,中缀,后缀表达式(逆波兰表达式)相关推荐
- 前缀(波兰表达式) 中缀 后缀(逆波兰表达式)
前缀.中缀.后缀表达式(逆波兰表达式) 本文转自https://www.cnblogs.com/chensongxian/p/7059802.html 介绍 前缀表达式.中缀表达式.后缀表达式都是四则 ...
- 数据结构 - 栈 (逆波兰计算器)(栈的三种表达式)(前缀、中缀和后缀表达式,后缀也叫逆波兰表达式)(中缀表达式转后缀表达式实现步骤及完整代码)
栈的三种表达式:前缀.中缀和后缀表达式,后缀也叫逆波兰表达式 前缀(波兰表达式) 中缀(对人来讲很好理解,对于计算机来讲就方便了,一般会把中缀表达式转换成后缀表达式) 后缀(逆波兰表达式) 计算过程 ...
- 数据结构:后缀表达式(逆波兰表达式)
逆波兰表达式计算 package com.atchina.stack;import java.util.ArrayList; import java.util.List; import java.ut ...
- C#数据结构-前缀中缀后缀+中缀转后缀
目录 一.前缀中缀后缀表达式 1.中缀表达式 2.前缀表达式 3.后缀表达式 二.中缀转后缀 一.前缀中缀后缀表达式 1.中缀表达式 中缀表达式就是平常生活中计算式子的写法,例如:(3+4)*5-6 ...
- 四则运算表达式 逆波兰表达式
感觉是一块比较偏门的东西,特此记录下: 逆波兰表达式: 或者叫后缀表达式,我们原先用的一直都是中缀表达式,但是因为如果表达式过长,计算机计算起来不方便.需要先遍历一边,找出其中的()进行优先计算,如果 ...
- 数据结构-栈应用之逆波兰表达式(后缀表达式)
逆波兰表达式含义我就不做赘述了,摘自百科上的一段话: 逆波兰表达式又叫做后缀表达式.在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之间,这种表示法也称为中缀表示.波兰逻辑学家J.Lukas ...
- 前缀中缀后缀表达式的计算求值
原文在这里 表达式 前缀表达式(波兰表达式) 前缀表达式又称波兰式,前缀表达式的运算符位于操作数之前 举例说明: (3+4)×5-6 对应的前缀表达式就是 - × + 3 4 5 6 前缀表达式求值 ...
- 数组结构与算法-036-042 前中后缀表达式-逆波兰计算器
036 前缀 中缀 后缀(逆波兰表达式)表达式 前缀表达式 前缀表达式(波兰表达式) 前缀表达式又称波兰表达式,前缀表达式的运算符位于操作数之前 举例说明:(3 + 4) * 5 -6 对应的前缀表达 ...
- 逆波兰表达式简单介绍
逆波兰表达式又叫做后缀表达式.在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之间,所以,这种表示法也称为中缀表示.波兰逻辑学家J.Lukasiewicz于1929年提出了另一种表示表达式的 ...
最新文章
- python字典一键多值_python字典中如何一键多值的写入?
- python-实现单链表
- 量子力学到底神奇在哪里?看完这个,我的认知彻底坍塌了
- 《深入理解Java虚拟机》第7章 虚拟机类加载机制
- python中的rt_TensorRT学习总结
- 推荐8个自媒体免费工具,不仅提高工作效率,还能提供灵感
- 手趣以“全网通址”深耕移动商务 帮助企业厚积而薄发
- 用标签打印软件将Excel中的多列数据合并打印
- 【iOS】解决UITextField输入限制受中文自动联想影响的问题
- Python语言程序设计课程论文--飞机大战
- linux互信文件,linux SSH互信
- DEDE源码分析与学习之二: member文件结构说明
- 解决W5500,DHCP获取IP地址失败的问题,移植官方例程需要特别注意!!!
- 云栖大会 mysql_【资料合集】2018云栖大会•深圳峰会回顾:PDF下载
- 【数据结构】带动画显示过程的递归求解迷宫问题
- Github标星25K+超火的Android实战项目,2022BTAJ面试真题详解
- 计算机密码是空的怎么重置,电脑忘记开机登录密码怎么办? Windows 密码重置 - 合一学院...
- html input禁止驶入,layui form表单 input输入框获取焦点后 阻止Enter回车自动提交 – 执念 – 博客园...
- C++基础知识整理(面试热点)
- 猜数字小游戏(Python)
热门文章
- Contest Hunter CH6201 走廊泼水节 最小生成树 Kruskal
- JSP/Servlet Web 学习笔记 DayFour —— 实现一个简单的JSP/Servlet交互
- 集合框架Map、List、Set
- 从无头单链表中删除节点 结构之法 4
- 关于使浏览器崩溃的代码尝试
- Junit实现接口类测试
- ROS Gazebo(二):概述
- ReactOS 0.4.11 发布,Windows 系统的开源替代方案
- 目录:SpringBoot学习目录
- 吴恩达 NIPS 2016:利用深度学习开发人工智能应用的基本要点(含唯一的中文版PPT)...