博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
后缀表达式转中缀表达式(非常简单易懂)
阅读量:3745 次
发布时间:2019-05-22

本文共 819 字,大约阅读时间需要 2 分钟。

介绍

最近刷题,看到了很多后缀转中缀的题目,查了一些网上的教程,在这里做了一个简单详细的说明。关于中缀转后缀请看我的另外一篇博客。

后缀转中缀

举个例子~对于后缀表达式 A B C D − ∗ + E F / − ABCD-*+EF/- ABCD+EF/,它的中缀表达式该怎么求呢?其实很简单,下面将会一步一步讲解:

1、把后缀表达式逐个元素的压入到栈中,当压入的都是字符,则不采取任何操作,当压入的是运算符,则把运算符下面的两个数字弹出和运算符进行运算,然后把结果继续压入到栈中。

2、对后缀表达式中的所有元素执行该操作,直到结束。

A B C D − ∗ + E F / − ABCD-*+EF/- ABCD+EF/来说,首先把 A B C D ABCD ABCD逐渐压入到栈中,当再次压入 − - 的时候,这时候 − - 下面是 C D CD CD,那么执行 C − D C-D CD,并把结果 K 1 K_1 K1压入到栈中,这时栈里有 A B K 1 ABK_1 ABK1,继续把*压入到栈中,这时有 A B K 1 ∗ ABK_1* ABK1,此时执行操作 B ∗ K 1 B*K_1 BK1,设结果为 K 2 K_2 K2,把 K 2 K_2 K2压入到栈中,此时栈中有 A K 2 AK_2 AK2,继续向栈中压入 + + +,此时栈中有 A K 2 + AK_2+ AK2+,执行 A + K 2 A+K_2 A+K2,设结果为 K 3 K_3 K3,将 K 3 K_3 K3压入到栈中,此时栈中只有 K 3 K_3 K3了,继续往里压入EF/,此时栈中有 K 3 E F / K_3EF/ K3EF/,接着的操作和以上完全相同,所以最终的中缀计算过程为:

A + B ∗ ( C − D ) − E / F A+B*(C-D)-E/F A+B(CD)E/F

后缀转中缀就是这么简单~~~

转载地址:http://hlhin.baihongyu.com/

你可能感兴趣的文章
剑指offer之斐波那契问题(C++/Java双重实现)
查看>>
Linux网络命令
查看>>
一天教会三岁表弟HTML,你值得拥有
查看>>
CSS基础汇总
查看>>
SpringCloud服务注册与发现
查看>>
SpringCloud Stream 消息驱动
查看>>
SpringCloud Sleuth 分布式请求链路
查看>>
SpringCloud Alibaba Nacos 服务注册和配置中心
查看>>
poi读写Excel
查看>>
使用Security安全框架实现权限登录
查看>>
JDBC工具类 使用Durid连接池链接MySQL数据库
查看>>
ANSYS——模态提取方法简介
查看>>
ANSYS——初学路径之路径的定义、作用以及ansys路径模块GUI的操作解释
查看>>
ANSYS——网格划分的不同方法以及GUI模块的操作(自由网格、映射网格、扫掠、拖拉)
查看>>
ANSYS——命令流学习(材料属性设置、建模的命令流)
查看>>
ANSYS——杆单元简介与示例(含新版本2019版本杆实常数设置、ANSYS help的使用、单元列表使用的举例)
查看>>
ANSYS——后处理中单元表(ELEMENT table)的作用、创建、使用
查看>>
在VScode上配置golang的开发环境
查看>>
leetcode每日一题---680. 验证回文字符串 Ⅱ
查看>>
leetcode每日一题---15. 三数之和
查看>>