介绍

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

后缀转中缀

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

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

对ABCD−∗+EF/−ABCD-*+EF/-ABCD−∗+EF/−来说,首先把ABCDABCDABCD逐渐压入到栈中,当再次压入−-−的时候,这时候−-−下面是CDCDCD,那么执行C−DC-DC−D,并把结果K1K_1K1​压入到栈中,这时栈里有ABK1ABK_1ABK1​,继续把*压入到栈中,这时有ABK1∗ABK_1*ABK1​∗,此时执行操作B∗K1B*K_1B∗K1​,设结果为K2K_2K2​,把K2K_2K2​压入到栈中,此时栈中有AK2AK_2AK2​,继续向栈中压入+++,此时栈中有AK2+AK_2+AK2​+,执行A+K2A+K_2A+K2​,设结果为K3K_3K3​,将K3K_3K3​压入到栈中,此时栈中只有K3K_3K3​了,继续往里压入EF/,此时栈中有K3EF/K_3EF/K3​EF/,接着的操作和以上完全相同,所以最终的中缀计算过程为:

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

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

后缀表达式转中缀表达式(非常简单易懂)相关推荐

  1. 后缀表达式、中缀表达式

    一.后缀表达式 1.理解 对于算术表达式来说,其基本规则是:先乘除,后加减:先括号内,再括号外:相同优先级情况下从左到右.比如,5 + 6 / 2 - 3 * 4 就是一个算术表达式,它的正确理解应该 ...

  2. 【数据结构与算法】【12】前缀表达式、中缀表达式、后缀表达式

    什么是前缀表达式.中缀表达式.后缀表达式 前缀表达式.中缀表达式.后缀表达式,是通过树来存储和计算表达式的三种不同方式 以如下公式为例 (a+(b−c))∗d( a+(b-c) )*d(a+(b−c) ...

  3. 数据结构 - 拓展突破(C++实现中缀表达式转前缀表达式,中缀表达式转后缀表达式,前缀表达式求值,中缀表达式求值)

    文章目录 1. C++中缀表达式转后缀表达式 2. C++中缀表达式转前缀表达式 3. C++后缀表达式求值 4. C++前缀表达式求值 1. C++中缀表达式转后缀表达式 输入中缀表达式样例: 2+ ...

  4. 前缀表达式转换为中缀表达式(lisp实现)

    前缀表达式转中缀表达式是比较简单的. 实现代码 实现函数代码如下: ;求得运算符号 (defun opsymbol(x)(cond((equal x 'setq) '=) ;给定的lisp函数.((e ...

  5. 前缀表达式、中缀表达式、后缀表达式的区别

    一.三者的概念(参考维基百科) 1.1中缀表达式 中缀表达式是符合人类直觉的一种表达方式,其特点是操作符(二元操作符)在中间,操作数在两侧. 例如 3 + 4 ,   5 - 6 * 7,     ( ...

  6. 前缀表达式,中缀表达式和后缀表达式的定义与联系(超详细)

    目录 前缀.中缀.后缀表达式 前缀表达式 前缀表达式的计算机求值 中缀表达式 后缀表达式 后缀表达式的计算机求值 中缀表达式转化为前缀和后缀表达式 小结 前缀.中缀.后缀表达式 前缀.中缀.后缀表达式 ...

  7. 中缀表达式转后缀表达式 java_中缀表达式转后缀表达式并计算结果Java实现

    /* 中缀表达式转成后缀表达式 "12+((22+31)*4)-5" ==> 12 22 31 + 4 * + 5 - 第一步,将中缀表达式转成中缀字符串list,方便遍历 ...

  8. 后缀表达式转中缀表达式

    中缀转后缀:中缀表达式转换为后缀表达式 大概意思就是:遇到数字就输出,遇到符号(包括括号)就压入栈,如果当前符号优先级比栈顶的低,就把栈顶的符号输出,平级的也都输出,到左括号(优先级最高为止),然后当 ...

  9. 前缀表达式、中缀表达式、后缀表达式

    前.中.后这三个方位名词是运算符相对于操作数的位置而言的: 如果是前缀运算符的话 那么就是运算符在操作数前面 如果是中缀运算符的话 那么就是运算符在操作数中间 如果是后缀运算符的话 那么就是运算符在操 ...

  10. java中缀转后缀_java实现中缀表达式转后缀的方法

    本文先给出思路与方法,最后将给出完整代码: 算法综述: 一.中缀表达式转后缀表达式: 1.中缀表达式要转后缀表达式,首先需要两个Stack(栈),其中一个应用于存放字符,另一个用于存放数字. 2.读到 ...

最新文章

  1. PowerTip of the Day-Add Help to Your Functions
  2. 醒来觉得甚是爱你。--朱生豪
  3. G - 数据结构实验之查找七:线性之哈希表
  4. Psych101(part1)--Day1
  5. 总感觉这个访问量过于均匀……
  6. 【已解决】双系统启动选择的界面(GRUB)字体太小,Ubuntu登录用户界面字体太小
  7. python统计形容词权重然后排序
  8. 解决actionBar 闪现
  9. Velodyne VLP16 WIN下配置
  10. 创建输入控件(input控件、文本框、密码框、单项选择、多项选择、重置与提交按钮的设置)
  11. 湖南省计算机等级考试(二级)题库 第六部分
  12. NVDIMM 知识点
  13. Microsoft Excel 单元格行高和列宽
  14. linux 巨型帧 网卡,Linux Kernel e1000驱动巨型帧处理绕过安全检查漏洞
  15. 非标自动化机械设计行业未来发展趋势
  16. The Devil of Face Recognition is in the Noise
  17. 微信内置浏览器无法打开APP下载链接的解决方案
  18. 小飞鱼通达商务平台课程 OA开发程序基础课 3月4日 PHP第一部分课程签到及作业
  19. 阿里云面试:什么是语法糖?Java中有哪些语法糖?
  20. 需要多少人进行人力发电,才能驱动旋转木马?

热门文章

  1. PHP Mysql-简介
  2. 正则表达式就这么简单!
  3. zabbix3.x web设置手册(2)
  4. Splay模板 1.0
  5. 整合Solr到Tomcat服务器,并配置IK分词
  6. 强悍的Google Earth
  7. Rainbow分页解决方案
  8. Oracle DBLINK 简单使用
  9. [C#] DBNull、Null和String.Empty的区别
  10. 27. 使用distance和advance将容器的const_iterator转换成iterator