python算法设计源码:https://github.com/MakerChen66/Python3Algorithm

版权声明:原创不易,本文禁止抄袭、转载,侵权必究!

目录

  • 一、后缀表达式
  • 二、源码下载
  • 三、作者Info

一、后缀表达式

虽然人们主要使用代数表达式中的中缀表达式记法,但是后缀表达式(也叫逆波兰表达式)更容易在算法上进行解析。

中缀表达式:二元运算符总是置于与之相关的两个运算对象之间,比如 5 + 2 ,9 * 4
后缀表达式:二元运算符置于其运算对象之后,比如 5 2 + ,9 4 *

例如,下面的表达式是等价的,第一个是中缀表达式,第二个是后缀表达式。
2 * (1 + 3) = 2 1 3 + *

当你实现你的第一个表达式解析器时,后缀和前缀表示法是最好的方法。对应到栈就是:入栈(append()),出栈(pop())…

Python算法实现:

math = {'+': float.__add__,'-': float.__sub__,'*': float.__mul__,'/': float.__truediv__,'^': float.__pow__,
}
def postfix(expression):stack = []for x in expression.split():if x in math:x = math[x](stack.pop(-2), stack.pop(-1))else:x = float(x)stack.append(x)print(stack.pop())postfix('1 2 + 4 3 - + 10 5 / *')  # 相当于计算 ((1+2)+(4-3))*(10/5)

注意:stack.append()表示入栈,stack.pop()表示出栈,split()表示分割

输出结果:

如图所示,运算结果是8,结果正确

二、源码下载

python算法设计源码下载:

  • GitHub下载链接:传送门
  • 原文链接:阅读原文

三、作者Info

作者:小鸿的摸鱼日常,Goal:让编程更有趣!

原创微信公众号:『小鸿星空科技』,专注于算法、爬虫,网站,游戏开发,数据分析、自然语言处理,AI等,期待你的关注,让我们一起成长、一起Coding!

版权说明:本文禁止抄袭、转载 ,侵权必究!

python算法设计 - 后缀表达式相关推荐

  1. python前缀表达式求值_python数据结构与算法 11 后缀表达式求值

    从本节开始,删除原版的英文,直接发译后的文稿. 后缀表达式求值 栈的最一个应用例子,计算一个后缀表达式的值.这个例子中仍然用栈的数据结构.不过,当扫描表达式的时候,这次是操作数压栈等待,不是转换算法中 ...

  2. Python 算法设计与分析 投资问题

    Python 算法设计与分析 投资问题 投资问题 题目:设有m元钱,n项投资,函数fi(x)表示将x元投入第i项项目所产生的效益,i=1,2,3,-,n.问:如何分配这m元钱,使得投资的总效益最高? ...

  3. python算法设计 - 汉诺塔

    python算法设计源码:https://github.com/MakerChen66/Python3Algorithm 版权声明:原创不易,本文禁止抄袭.转载,侵权必究! 目录 一.汉诺塔 二.源码 ...

  4. python算法设计 - 二进制

    python算法设计源码:https://github.com/MakerChen66/Python3Algorithm 版权声明:原创不易,本文禁止抄袭.转载,侵权必究! 目录 一.二进制1的个数 ...

  5. 有趣的数据结构算法10——后缀表达式(PRN)介绍及利用栈计算后缀表达式的结果

    有趣的数据结构算法10--后缀表达式(PRN)介绍及利用栈计算后缀表达式的结果 解题思路 实现代码 GITHUB下载连接 在前一天已经利用栈完成2进制到8进制的转换.但是栈的应用方面还有很多,本次我将 ...

  6. python算法设计 - 下一组排列

    python算法设计源码:https://github.com/MakerChen66/Python3Algorithm 版权声明:原创不易,本文禁止抄袭.转载,侵权必究! 目录 一.下一组排列 二. ...

  7. python算法设计 - 埃拉托色尼筛选法

    python算法设计源码:https://github.com/MakerChen66/Python3Algorithm 版权声明:原创不易,本文禁止抄袭.转载,侵权必究! 目录 一.埃拉托色尼筛选法 ...

  8. python算法设计

    算法是一个循序渐进的过程,它定义了一组指令,以一定的顺序执行以获得所需的输出.算法通常独立于底层语言,即算法可以以多种编程语言实现. 从数据结构的角度看,以下是一些重要的算法类型: * 搜索      ...

  9. 逆波兰算法(后缀表达式)

    逆波兰式 即我们平时所说的后缀表达式(将运算符写在操作数之后) 实现逆波兰式的算法,难度并不大,但为什么要将看似简单的中序表达式转换为复杂的逆波兰式?原因就在于这个简单是相对人类的思维结构来说的,对计 ...

最新文章

  1. Java数据结构和算法(六)——前缀、中缀、后缀表达式
  2. asc desc排序_HIVE的学习之路(六)Hive的分组Join排序
  3. Mysql自增列,并发插入时导致死锁的问题
  4. resolve fire在SAP UI5中的使用场景
  5. react学习(62)--注意数据格式返回
  6. zookeeper专题:zookeeper的节点类型,数据持久化机制
  7. h5物体拖动_html5实现拖拽效果
  8. 开启Windows文件共享必须开启的两个服务
  9. HTML中动态的增加和删除表格中的一行
  10. IntelliJ IDEA开发Java web项目,设置JSP代码自动补全的方法
  11. 差分相干解调 matlab,差分相干解调
  12. MySQL更新数据语句
  13. Windows调出屏幕键盘的步骤
  14. 强迫性皮肤剥离征 Dermatillomania( skin picking disorder ):强迫性皮肤剥离症 论文
  15. python-pygame怀旧游戏之超级玛丽
  16. 2019年,你必须知道的7个企业服务趋势
  17. python图像识别植物识别_python 植物识别 error_code
  18. 分析型CRM软件能帮到你什么?
  19. 【论文阅读】Video Generation from Single Semantic Label Map-CVPR2019
  20. TopCoder比赛简介

热门文章

  1. Vue 循环的 key 作用
  2. 数字图像处理课程实习——边缘检测与图像分割
  3. 【JavaScript】巧用思维导图来轻松学习JavaScript
  4. 为什么你逃不脱打工被老板压榨的命运?
  5. 全志V3S嵌入式驱动开发(esp8089 wifi驱动)
  6. 计算机动漫与游戏制作与影视,厦门动漫游戏设计学校哪里好|厦门信息学校计算机动漫与游戏制作专业招生|厦门计算机动漫与游戏制作专业学校|厦门中专学校...
  7. aspen infoplus.21 实时数据库安装
  8. 【代码附】Python实现简单的7款小程序。
  9. FPGA数字信号处理基础----AD936x接口
  10. Springboot疫苗接种管理系统-JAVA.JSP【数据库设计、源码、开题报告】