前缀表达式(波兰表达式)

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

比如 (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,由此得出最终结果.

数据结构:前缀,中缀,后缀表达式(逆波兰表达式)相关推荐

  1. 前缀(波兰表达式) 中缀 后缀(逆波兰表达式)

    前缀.中缀.后缀表达式(逆波兰表达式) 本文转自https://www.cnblogs.com/chensongxian/p/7059802.html 介绍 前缀表达式.中缀表达式.后缀表达式都是四则 ...

  2. 数据结构 - 栈 (逆波兰计算器)(栈的三种表达式)(前缀、中缀和后缀表达式,后缀也叫逆波兰表达式)(中缀表达式转后缀表达式实现步骤及完整代码)

    栈的三种表达式:前缀.中缀和后缀表达式,后缀也叫逆波兰表达式 前缀(波兰表达式) 中缀(对人来讲很好理解,对于计算机来讲就方便了,一般会把中缀表达式转换成后缀表达式) 后缀(逆波兰表达式) 计算过程 ...

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

    逆波兰表达式计算 package com.atchina.stack;import java.util.ArrayList; import java.util.List; import java.ut ...

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

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

  5. 四则运算表达式 逆波兰表达式

    感觉是一块比较偏门的东西,特此记录下: 逆波兰表达式: 或者叫后缀表达式,我们原先用的一直都是中缀表达式,但是因为如果表达式过长,计算机计算起来不方便.需要先遍历一边,找出其中的()进行优先计算,如果 ...

  6. 数据结构-栈应用之逆波兰表达式(后缀表达式)

    逆波兰表达式含义我就不做赘述了,摘自百科上的一段话: 逆波兰表达式又叫做后缀表达式.在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之间,这种表示法也称为中缀表示.波兰逻辑学家J.Lukas ...

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

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

  8. 数组结构与算法-036-042 前中后缀表达式-逆波兰计算器

    036 前缀 中缀 后缀(逆波兰表达式)表达式 前缀表达式 前缀表达式(波兰表达式) 前缀表达式又称波兰表达式,前缀表达式的运算符位于操作数之前 举例说明:(3 + 4) * 5 -6 对应的前缀表达 ...

  9. 逆波兰表达式简单介绍

    逆波兰表达式又叫做后缀表达式.在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之间,所以,这种表示法也称为中缀表示.波兰逻辑学家J.Lukasiewicz于1929年提出了另一种表示表达式的 ...

最新文章

  1. python字典一键多值_python字典中如何一键多值的写入?
  2. python-实现单链表
  3. 量子力学到底神奇在哪里?看完这个,我的认知彻底坍塌了
  4. 《深入理解Java虚拟机》第7章 虚拟机类加载机制
  5. python中的rt_TensorRT学习总结
  6. 推荐8个自媒体免费工具,不仅提高工作效率,还能提供灵感
  7. 手趣以“全网通址”深耕移动商务 帮助企业厚积而薄发
  8. 用标签打印软件将Excel中的多列数据合并打印
  9. 【iOS】解决UITextField输入限制受中文自动联想影响的问题
  10. Python语言程序设计课程论文--飞机大战
  11. linux互信文件,linux SSH互信
  12. DEDE源码分析与学习之二: member文件结构说明
  13. 解决W5500,DHCP获取IP地址失败的问题,移植官方例程需要特别注意!!!
  14. 云栖大会 mysql_【资料合集】2018云栖大会•深圳峰会回顾:PDF下载
  15. 【数据结构】带动画显示过程的递归求解迷宫问题
  16. Github标星25K+超火的Android实战项目,2022BTAJ面试真题详解
  17. 计算机密码是空的怎么重置,电脑忘记开机登录密码怎么办? Windows 密码重置 - 合一学院...
  18. html input禁止驶入,layui form表单 input输入框获取焦点后 阻止Enter回车自动提交 – 执念 – 博客园...
  19. C++基础知识整理(面试热点)
  20. 猜数字小游戏(Python)

热门文章

  1. Contest Hunter CH6201 走廊泼水节 最小生成树 Kruskal
  2. JSP/Servlet Web 学习笔记 DayFour —— 实现一个简单的JSP/Servlet交互
  3. 集合框架Map、List、Set
  4. 从无头单链表中删除节点 结构之法 4
  5. 关于使浏览器崩溃的代码尝试
  6. Junit实现接口类测试
  7. ROS Gazebo(二):概述
  8. ReactOS 0.4.11 发布,Windows 系统的开源替代方案
  9. 目录:SpringBoot学习目录
  10. 吴恩达 NIPS 2016:利用深度学习开发人工智能应用的基本要点(含唯一的中文版PPT)...