python四则运算顺序_四则运算python

通过构建二叉树解决Python四则运算问题,利用逆波兰表达式进行计算。文章介绍了如何初始化树结构,中序和后序遍历,并提供了一种处理运算优先级的方法,以避免负数结果。
摘要由CSDN通过智能技术生成

Git代码地址:https://github.com/sabersana/try/blob/master/sizeyunsuan.py

解题思路:

一开始看到题目感觉很简单一个循环三个随机数但随着思考发现题目没有这么简单,被限制住计算位数和最后求解,如1+2*3,转化为逆波兰式很麻烦

百度搜索时发现可以用二叉树生成式子就打算试一试(https://www.cnblogs.com/xiaobingqianrui/p/8894253.html)。

逆波兰式:https://baike.baidu.com/item/%E9%80%86%E6%B3%A2%E5%85%B0%E5%BC%8F/128437?fr=aladdin

在一棵没有单叶子的树中叶子永远比双亲多1个节点,刚好和一个运算式子中的数字符号吻合,可以得知叶子节点全为进行运算的数字,和其余节点全为运算符号

树中序遍历时可以输出一个运算式子,后序遍历时可以得到这个式子的逆波兰式

设计实现:

需要一个树类

方法有 初始化树 , 中序遍历, 后序遍历, 计算逆波兰式

在初始化树时规定树中非叶子节点的运算符号以及叶子节点的具体数字

中序遍历时将结果保存起来可得到一个正常运算式子

后序遍历得到这棵树代表的式子的逆波兰式

以及最后根据逆波兰式进行计算

代码说明:

决定用树解决问题之后就首先得学会用python建立一棵树 https://blog.csdn.net/yunlongl/article/det

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值