中缀表达式转换成前缀表达式和后缀表达式的极其简单方法

中缀表达式转换成前缀表达式和后缀表达式的极其简单方法35 15 80 70 20 后缀表达方式 35 15 80 70 20 25 中缀表达方式 35 15 80 70 20 前缀表达方式人的思维方式很容易固定 正如习惯了 10 进制 就对 2 3 4 8 16 等进制不知所措一样 人们习

35,15,+,80,70,-,*,20,/ //后缀表达方式 (((35+15)*(80-70))/20)=25 //中缀表达方式 /,*,+,35,15,-,80,70, 20 //前缀表达方式 

方法一:

一个中缀式到其他式子的转换方法~~

或者后面找运算符。而不是中间找,那么也就直接可以口算拉

后缀表达法,我们又把它称为逆波兰(Reverse Polish Notation ,RPN ),用它可以实现简单的四则运算求值

像“9+(3-1)*3+10/2”用后缀表示法应该是“9 3 1 – 3 * + 10 2 / +”

方法二:二叉树求解法

表达式A*B:左子树为表达式A,右子树为表达式B,可以先求左子树所表示的表达式的值,再求右子树所表示的表达式的值,最后二者相乘。注意,所画出的二叉树,它的叶子节点为数值,非叶子节点是运算符。画出二叉树以后,依次进行前序遍历和后序遍历,可以得出前缀表达式和后缀表达式。

 例如美团曾经出过的一个笔试题目:

中缀表达式转换成前缀表达式和后缀表达式的极其简单方法

解答:

根据题目,我们可以画出二叉树,如图所示:

中缀表达式转换成前缀表达式和后缀表达式的极其简单方法

然后根据后序遍历,即可得出后缀表达式,前序遍历即可得出前缀表达式~

后缀表达式转中缀表达式

 从左到右遍历中缀表达式的每个数字和符号,若是数字就输出,即称为后缀表达式的一部分;若是符号,则判断其与栈顶符号的优先级,是有括号或者优先级不高于栈顶符号则栈顶元素依次出栈并输出,并将当前符号进栈,一直到最终输出到后缀表达式为止。

后缀表达式计算结果:

 从从左到右遍历表达式的每个数字和符号,遇到数字就进栈,遇到是符号,就将处于栈顶的两个数字出栈,进行运算,运算结果出栈(这里应该是将运算结果再入栈才对),一直到最终获得结果

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209121.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午9:59
下一篇 2026年3月19日 上午9:59


相关推荐

  • docker搭建kafka集群

    docker搭建kafka集群docker搭建kafka集群我在M1mbp上使用的以下镜像新建文件zk-kafka-docker-compose.ymlversion:”2″services:zookeeper:user:rootimage:docker.io/zookeeperports:-“12181:2181″environment:-ALLOW_ANONYMOUS_LOGIN=yesvolumes:-zoo

    2022年4月25日
    34
  • 插件MyBatisCodeHelperPro的激活(简单方法)

    插件MyBatisCodeHelperPro的激活(简单方法)目录一 前言二 安装插件 MyBatisCodeH 插件三 激活一 前言在开发中编写生成 bean mapper mapper xml 即费时也费力 可以通过 MyBatisCodeH 自动生成 bean dao mapper xml 等文件 然后根据自己的需要进行修改 MyBatisCodeH 是 IDEA 下的一个插件 类似于 mybatisplugi 但是是收费的 但可以进行激活使用 下面这个大佬的个人主页上有多个版本的下载链

    2026年3月19日
    2
  • cegui 0.8.7 安装和构建

    cegui 0.8.7 安装和构建cegui是一个开源GUI库,经过历史的验证和发展,变得非常庞大和复杂,但效率是有所保证的,常用于游戏开发。1.首先去CEGUI官网,点击进入下载界面。2.下载这两个,第一个是cegui

    2022年7月3日
    25
  • 通过Zimbra收取POP3邮件,总是提示错误:Connection reset

    通过Zimbra收取POP3邮件,总是提示错误:Connection reset

    2021年5月11日
    118
  • JAVA获取服务器路径的方法

    JAVA获取服务器路径的方法1、在JSF环境中获取到ServletContext:12ServletContextsc=(ServletContext)FacesContext.getCurrentInstance

    2022年7月4日
    24
  • win10家庭版升级到企业版

    win10家庭版升级到企业版由于某些原因要用到 docker 下载完后准备安装时 发现只能安装到 win10 企业版上 无奈 只能升级了 过程如下 win10 家庭版升级到企业版密钥 http www xitongcheng com jiaocheng xtazjc article 35407 html 更改密钥后 系统不一定是激活的 那就继续激活喽 nbsp Win101803 数字激活工具 HWIDGen h

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号