首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将后缀(反向抛光符号)表达式转换为带有最小括号的中缀

后缀表达式(也称为逆波兰表达式)是一种数学表达式的表示方法,其中运算符在操作数之后。将后缀表达式转换为带有最小括号的中缀表达式可以通过使用栈来实现。

下面是将后缀表达式转换为带有最小括号的中缀表达式的步骤:

  1. 创建一个空栈。
  2. 从左到右遍历后缀表达式的每个元素。
    • 如果当前元素是操作数,则将其推入栈中。
    • 如果当前元素是运算符,则从栈中弹出两个操作数,并将它们与当前运算符组合成一个中缀表达式,并将结果推入栈中。
  3. 当遍历完整个后缀表达式后,栈中应该只剩下一个元素,即最终的中缀表达式。

以下是一个示例:

后缀表达式:3 4 + 5 *

  1. 创建一个空栈。
  2. 从左到右遍历后缀表达式的每个元素:
    • 遇到操作数3,将其推入栈中。
    • 遇到操作数4,将其推入栈中。
    • 遇到运算符+,从栈中弹出两个操作数4和3,并将它们与运算符+组合成中缀表达式"4 + 3",将结果"4 + 3"推入栈中。
    • 遇到操作数5,将其推入栈中。
    • 遇到运算符,从栈中弹出两个操作数5和"4 + 3",并将它们与运算符组合成中缀表达式"5 (4 + 3)",将结果"5 (4 + 3)"推入栈中。
  3. 完成遍历后,栈中只剩下一个元素"5 * (4 + 3)",即最终的中缀表达式。

将后缀表达式转换为带有最小括号的中缀表达式的优势是可以更清晰地表示运算符的优先级和结合性。这种转换通常在编译器和计算器等应用中使用。

在腾讯云的产品中,与此相关的产品是腾讯云计算服务(Tencent Cloud Computing Service),它提供了丰富的云计算解决方案和服务,包括计算、存储、数据库、人工智能等。您可以通过访问腾讯云的官方网站(https://cloud.tencent.com/)了解更多关于腾讯云计算服务的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

数据结构与算法-(7)---栈的应用-(3)表达式转换

C将变为前缀的"+A*BC"后缀的"ABC*+"为了帮助理解,子表达式加了下划线 在前缀和后缀表达式中,操作符的次序完全决定了运算的次序,不再有混淆 所以在很多情况下,表达式在计算机中的表示都避免使用复杂的中缀形式...,让我们看看如何将其转换成前后缀表达式吧~ 中缀表达式转换为前后缀形式的方法 ✨Summary: (1)将中缀表达式转换为全括号形式 (2)将所有的操作符移动到子表达式所在的...通用的中缀转后缀算法⭐ 在中缀表达式转换为后缀形式的处理过程中,操作符比操作数要晚输出 所以在扫描到对应的第二个操作数之前,需要把操作符先保存起来 而这些暂存的操作符,由于优先级的规则还有可能要反转次序输出...利用中缀转后缀的操作流程 后面的算法描述中,约定中缀表达式是由空格隔开的一系列单词(token)构成, 操作符单词包括*/+-() 而操作数单词则是单字母标识符A、B、C等。...1.首先,创建空栈opstack用于暂存操作符,空表postfixList用于保存后缀表达式 2.将中缀表达式转换为单词(token)列表 A + B*C = split => ['A', '+

15510

【Java数据结构和算法】009-栈:前缀、中缀、后缀表达式(逆波兰表达式)

,数字顺序走后面;) (PS:这么看来前缀表达式就是符号放前面,类似“1+1”就是中缀表达式,那后缀表达式就是将符号放后面(实际上不完全相似,具体见后缀表达式)) 2、前缀表达式的计算求值逻辑 从右至左扫描表达式...最终计算结果:15 四、中缀表达式转后缀表达式【重点】 1、步骤 ①初始化两个栈:运算符栈s1和储存中间结果的栈s2; ②从左至右扫描中缀表达式; ③遇到操作数时,将其压s2; ④遇到运算符时,比较其与...; ⑥重复步骤2至5,直到表达式的最右边; ⑦将s1中剩余的运算符依次弹出并压入s2; ⑧依次弹出s2中的元素并输出,结果的逆序即为中缀表达式对应的后缀表达式; 2、举个例子 举例说明: 将中缀表达 式...“1+((2+3)×4)-5”转 换为后缀表达式的过程如下: (结果为 "1 2 3 + 4 × + 5 –") 扫描到的元素 s2(栈底->栈顶) s1 (栈底->栈顶) 说明 1 1 空 数字,直接入栈...3 + 4 × + 5 - 空 s1中剩余的运算符 3、说明 我们看到,中缀表达式转后缀表达式实现算法是相当复杂的,我们学习之后运用,很难自创一个这样的新算法; 举例子: 降龙十八掌: 学习——运用

12910
  • 中缀表达式转换为后缀表达式(逆波兰表达式)并对其求值

    中缀表达式转后缀表达式思路: 1.初始化一个运算符栈s1和存储中间结果的List集合s2; 2.从左至右扫描中缀表达式(这里为了方便把中缀表达式字符串依次存放到数组中); 3.遇到操作数时,将其加到...s2,直到遇左括号为止,此时将这一对括号丢弃; 6.重复2-5,直到表达式最右边 7.将s1中剩余的运算符依次弹出并加入到s2 8.依次输出s2中的元素,结果即为中缀表达式对应的后缀表达式。...//将中缀表达式转换为后缀表达式并求值 import java.util.ArrayList; import java.util.List; import java.util.Stack; public...class InversePolishExpression { public static void main(String[] args) { //完成一个将中缀表达式转换为后缀表达式的功能...//直接对str不好操作,因此将str存放到list中并转换为后缀的list String expression = "10+((21+3)*4)-50";

    37830

    数据结构与算法-(7)---栈的应用拓展-前缀表达式转换+求值

    回顾+思路讲解 之前我们介绍过了什么是后缀表达式,以及它如何通过中缀表达式进行转换,以及关于后缀表达式的求值问题,如有遗忘http://t.csdnimg.cn/Hl4Y9 今天我们拓展一下,前缀表达式的转换和求值问题...中缀转后缀表达式的思路: 从左到右扫描逐个字符扫描中缀表达式的过程中,采用一个栈来暂存未处理的操作符 这样,栈顶的操作符就是最近暂存进去的,当遇到一个新的操作符,就需要跟栈顶的操作符比较下优先级...另外,从右往左扫描还可以处理右结合性的运算符。 参考后缀表达式代码思路: 我们利用一个栈来进行中缀表达式转前缀表达式的操作。...左括号--从操作符栈opStack中弹出并返回顶部元素topToken,直到遇到右括号为止。期间,将所有弹出的操作符添加到前缀表达式列表prefixList中。...postfix_eval()函数接受一个前缀表达式,将其转换为后缀表达式并计算结果。 在计算过程中,它先将操作数入栈,然后遇到运算符就弹出栈顶的两个元素进行计算,并将计算结果重新入栈。

    21010

    栈的应用——四则运算表达式

    摘要:本文是看《大话数据结构》栈章节的学习总结 正文: 栈的应用——四则运算表达式 栈的应用场景有很多,如浏览器的后退,编辑软件的回退等,今天要谈的是栈的基本应用之四则运算表达式(中缀转后缀表达式)...在20世纪50年代有一个叫Jan Łukasiewicz的波兰数学家想到了一种不需要括号的后缀表达式,我们称为逆波兰表示法 ,逆波兰记法不需要括号来标识操作符的优先级 中缀转后缀表达式 我们平时所用的标准四则运算表达式...,如: 150-(7+5)*2+30*2 叫做中缀表达式,因为所有的运算符号都在两个数字之间,现在我们通过使用栈将其转为后缀表达式 规则: 从左到右遍历上面中缀表达式的每个数字符号 如果是数字则直接输出...最后遍历结束栈中符号依次输出,最终的后缀表达式结果是150 7 5 + 2 * - 30 2 * + 后缀表达式计算结果 上述结果:150 7 5 + 2 * - 30 2 * +, 可能很多人问转这个有什么用...计算规则:从左到右遍历每个数字和符号,遇到数字就进栈,遇到符号将处于栈顶的两个元素出栈并运算,运算结果进栈,一直到最后算出最终结果 150 7 5依次进栈,+号是符号,将栈顶的 7 5出栈并运算(+

    1.5K40

    2022: 暴杀表达式, 脚踩逆波兰的时候到了

    (理论加举例) 前缀 前缀表达式是一种没有括号的算术表达式,与中缀表达式不同的是,其将运算符写在前面,操作数写在后面。...与前缀表达式(例:+ 3 4)或后缀表达式(例:3 4 +)相比,中缀表达式不容易被计算机解析,但仍被许多程序语言使用,因为它符合人们的普遍用法。 与前缀或后缀记法不同的是,中缀记法中括号是必需的。...计算上,后缀与中缀的区别 中缀转后缀表达式 大家看到,后缀表达式适合计算式进行运算,但是人却不太容易写出来,尤其是表达式很长的情况下,因此在开发 中,我们需要将 中缀表达式转成后缀表达式。...7.将s1中剩余的运算符一次弹出并压入s2 8.依次弹出s2中的元素并且输出,结果逆序就是中缀表达式对应的后缀的表达式 思路举例 将中缀表达式“1+((2+3)×4)-5”转换为后缀表达式的过程如下...这里我们考虑中缀转后缀的几个要点,运算符优先级和运算符的位置 动手之后,debug看看栈和List的变化加深理解

    68120

    栈(stack)的应用

    算法描述如下: 做一个空栈,从这串代码的开始读到末尾。如果读到的字符是一个开放字符——左括号,那么将它入栈。如果是一个封闭符号——右括号,这时将栈中的元素弹出。...StackIsEmpty()) return error; } 表达式转换(中缀表达式转后缀表达式) 中缀表达式:操作符位于操作数中间,例如:2+3*5。...我们现在使用的算术表达式就是中缀表达式。 后缀表达式:操作符放在两个操作数的后面,并且严格遵守从左向右的运算规则。而且后缀表达式相比于前缀表达式是没有括号运算符的。...下面是将中缀表达式转换成后缀表达式的一般步骤:假设我们从标准输入读取一个中缀表达式 读到一个数字时,立即将数字放入输出流。 读到左括号时,将其压入堆栈中。...我们可以得到计算一个中缀表达式的方案。当然了,在中缀表达式转后缀表达式的过程中就可以边转边计算。

    1.3K20

    中缀表达式转换为后缀表达式(C语言代码+详解)

    中缀表达式转换为后缀表达式(思路) 1.创建栈 2.从左向右顺序获取中缀表达式 a.数字直接输出 b.运算符 情况一:遇到左括号直接入栈,遇到右括号将栈中左括号之后入栈的运算符全部弹栈输出,同时左括号出栈但是不输出...情况四:获取完后,将栈中剩余的运算符号依次弹栈输出 例:比如将:2*(9+6/3-5)+4转化为后缀表达式 2 9 6 3 / +5 – * 4 + 转换算法代码如下: /*中缀转后缀函数*/ void...,将弹出的左括号从新压栈,因为左 括号要和又括号匹配时弹出,这个后面单独讨论。...StackLength(S)) { return 0; } *c=*--S->top; return 1; } /*中缀转后缀函数*/ void Change(SqStack *S,Elemtype...{ Elemtype str[MAXBUFFER]; SqStack S; gets(str); Change(&S,str); return 0; } 运行效果截图如下: 如何实现将中缀表达式转换成后缀表达式后计算值

    1.6K10

    算法 - 调度场算法(Shunting Yard Algorithm)

    温馨提示:因微信中外链都无法点击,请通过文末的” “阅读原文” 到技术博客中完整查阅版;(本文整理自技术博客) 在总结 栈(Stack) 这个数据结构时候,栈有一种应用是计算算术表达式的 —— 中缀转后缀的...如果你不好理解调度场算法的话,可以先列出算式对应的 AST,然后再做一把后续遍历就能获得逆波兰式; REFERENCE 参考文档 1、中缀转后缀 计算器的核心算法-JavaScript实现(逆波兰表达式...):很详细的教程,利用两个栈实现计算器,还有 demo; javascript使用栈结构将中缀表达式转换为后缀表达式并计算值:例子详实,推荐 How to implement a basic mathematical...:很详细的图文讲解,每一步都有图示,对初学者很友好; Codewars:从逆波兰表达式到Three-Pass编译器(1):看作者是如何举一反三,利用 RPN 完成解题; 如何在程序中将中缀表达式转换为后缀表达式...:知乎问答; 2、调度场算法 在计算机科学里,将中缀形式转换成后缀形式的算法有一个专门的称谓,调度场算法(Shunting Yard Algorithm),看不了的请看下面两篇: 什么是逆波兰表达式 ?

    2.8K10

    前端学数据结构 - 栈(Stack)和 队列(Queue)

    = 4; for(let i = n; i > 0; i--) { a.push(i); } // test towerOfHanoi(a.length, a, b, c); 4、调度场算法(中缀表达式转后缀表达式...) 计算器的核心算法-JavaScript实现(逆波兰表达式):很详细的教程,利用两个栈实现计算器,还有 demo; javascript使用栈结构将中缀表达式转换为后缀表达式并计算值:例子详实,推荐...--------------------------------- 调度场算法,将中缀转换过程后缀表达式 --------------------------------------------...;入栈符号不是右括号 // 循环判断当前栈顶符号,且优先级高于或等于将要入栈的元素,且栈顶不是左括号 while(opStack.peek && PRI_TOKEN_MAP...JavaScript实现及应用 – 栈 递归 汉诺塔:介绍栈的基本操作和它的一些应用;在括号匹配检测,表达式求值,函数调用上的应用,本文还将给出表达式求值和汉诺塔的HTML5演示 Stack Data

    1K10

    【数据结构】后缀(逆波兰)表达式的计算以及中缀转后缀的方法

    显然,这里没有了括号。对于从来没有接触过后缀表达式的同学来讲,这样的表述是很难受的。不过你不喜欢,有机器喜欢,比如我们聪明的计算机。 二、中缀表达式转后缀表达式 1....传统方法 我们把平时所用的标准四则运算表达式,即“9+(3-1)×3+10÷2”叫做中缀表达式。因为所有的运算符号都在两数字的中间,现在我们的问题就是中缀到后缀的转化。...规则: 从左到右遍历中缀表达式的每个数字和符号 若是数字就输出,即成为后缀表达式的一部分; 若是符号,则判断其与栈顶符号的优先级,是右括号或优先级低于栈顶符号(乘除优先加减)则栈顶元素依次出栈并输出...,为其加上括号 最后,计算整体,为整个计算式加上括号 然后将每个括号里面的算术符号提到本括号的外面,如图 2-2-2 最后将所有的括号都去掉,就得到了后缀表达式 9 3 1 – 3 *+10 2...从刚才的推导中你会发现,要想让计算机具有处理我们通常的标准(中缀)表达式的能力,最重要的就是两步: 将中缀表达式转化为后缀表达式(栈用来进出运算的符号)。

    21610

    五分钟小知识之什么是后缀表达式

    后缀表达式,又称逆波兰式,指的是不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则)。...后缀表达式计算: 后缀表达式计算与前缀表达式类似,只是顺序是从左至右,具体过程如下: 从左至右扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(次顶元素...中缀表达式转后缀表达式: 与转换为前缀表达式相似,步骤如下:   (1)初始化两个栈:运算符栈s1和储存中间结果的栈s2;   (2)从左至右扫描中缀表达式;   (3)遇到操作数时,将其压s2;   ...(2)至(5),直到表达式的最右边;   (7)将 s1 中剩余的运算符依次弹出并压入 s2;   (8)依次弹出 s2 中的元素并输出,结果的逆序即为中缀表达式对应的后缀表达式(转换为前缀表达式时不用逆序...) 例如,将中缀表达式“1+((2+3)×4)-5”转换为后缀表达式的过程如下: 扫描到的元素 s2(栈底->栈顶) s1 (栈底->栈顶) 说明 1 1 空 数字,直接入栈 + 1 + s1为空,运算符直接入栈

    3.4K20

    《算法竞赛进阶指南》0x11 栈

    较为常用的是使用赋值运算符 = 为 stack 赋值 表达式求值 表达式求值是栈的一个经典应用,表达式类型分为三种:前缀、中缀、后缀表达式 后缀表达式求值 建立一个用于存数的栈,逐一扫描该后缀表达式的元素...如果遇到一个数,则把数入栈 如果遇到运算符,就取出栈顶的两个数进行计算,把结果存回栈中 扫描完成后,栈中恰好剩下一个数,就是该后缀表达式的值 中缀表达式求转后缀表达式 建立一个用于存运算符的栈,逐一扫描该中缀表达式的元素...如果遇到一个数,输出该数 如果遇到左括号,把左括号入栈 如果遇到右括号,不断取出栈顶并输出,直到栈顶为左括号,然后把左括号出栈 如果遇到运算符,只要栈顶符号的优先级不低于新符号,就不断取出栈顶并输出...优先级为乘除 > 加减 > 左括号 一次取出并输出栈中的所有剩余符号,最终输出的序列就是一个与原中缀表达式等价的后缀表达式 // 中缀表达式转后缀表达式,同时对后缀表达式求值 int solve(string...s[i]); // 中缀表达式的右括号 else if (s[i] == ')') { while (*ops.rbegin() !

    1.1K20

    前缀中缀后缀表达式

    什么是中缀表达式 就像我们平时用到的大部分计算表达式都是中缀 比如 1+1 3*2 等等 中缀表达式虽然很方便人使用,但是对机器却不太友好 比如我要计算(1+1)*3+2...机器将怎样区分操作符的优先级,机器不是人,机器是很傻的,所以我们要提供一种新的算法,让机器无脑就可以算。...这个意思不是把所有运算符放到数字后面,比如我们举个例子,(3+4)×5-6 有括号的肯定要先算括号里面的所以我们先括号 再乘 最后再减 转换后缀表达式的结果是34+5*6- 为什么说机器好算呢!...因为是后缀所以从左往右看,遇到符号我们就把前面的操作数根据这个操作符计算,34+就是7 那么现在表达式是75*6- 75* 就是35 最后35-6= 29 从左往右遇到操作符就算,是不是很无脑,你也不用管优先级什么的...,因为中缀转后缀时候,就已经考虑到优先级了。

    21520

    JS实现简易的计算器

    - 6 就是中缀表达式 - × + 3 4 5 6 前缀表达式 3 4 + 5 × 6 - 后缀表达式 所以为了实现程序的自动运算,我们需要将输入的数据转化为前缀或后缀表达式 前缀、中缀、后缀表达式的概念以及相互转换方法在这里就不多说了...,这篇博文 说得比较清楚了  所以,在这个计算器的实现中,采用了后缀表达式的实现方式,参考以上文章,重点关注这两个算法: 与转换为前缀表达式相似,遵循以下步骤: (1) 初始化两个栈:运算符栈S1和储存中间结果的栈...; (4-2) 否则,若优先级比栈顶运算符的高,也将运算符压入S1(注意转换为前缀表达式时是优先级较高或相同,而这里则不包括相同的情况); (4-3) 否则,将S1栈顶的运算符弹出并压入到S2中,再次转到...,此时将这一对括号丢弃; (6) 重复步骤(2)至(5),直到表达式的最右边; (7) 将S1中剩余的运算符依次弹出并压入S2; (8) 依次弹出S2中的元素并输出,结果的逆序即为中缀表达式对应的后缀表达式...,这里没有使用到括号,如果实际需要,可在相应位置修改判断条件即可~ // 中缀表达式转后缀 infix2Suffix: function() {

    11.1K10

    彻底用图解教会你——中缀表达式转后缀和前缀

    那么问题来了,如何将中缀表达式转化为前、后缀表达式呢?...中缀表达式转换为后缀表达式 表达式的转换要用到TokenReader和栈,TokenReader用来读取中缀表达式,一次读取一个Token。再准备两个栈,一个用红色标记,一个用绿色标记。...中缀转后缀,先看视频,再看分步解析: 第一步、把中缀表达式装入TokenReader,并准备好从头部开始读取,如图15: ? 第二步、读取到左括号,压入绿栈,如图16: ?...中缀表达式转换为前缀表达式 中缀转前缀,先看视频,再看分步解析: 第一步、把中缀表达式装入TokenReader,并准备好从尾部开始读取,如图34: ?...和作者一起来总结规律 中缀转后缀: 操作数总是入红栈 绿栈为空时,运算符总是入绿栈 左括号总是入绿栈 右括号总是导致运算符出绿栈,直至出到遇到左括号为止 同级别运算符总是入绿栈 高级别运算符总是入绿栈

    6.6K30

    图解java数据结构之栈(Stack),你确定不看看吗?

    2)处理递归调用:和子程序的调用类似,只是除了储存下一个指令的地址外,也将参数、区域变量等数据存入堆栈中。 3)表达式的转换[中缀表达式转后缀表达式]与求值(实际解决)。 4)二叉树的遍历。...(逆波兰)计算器 中缀表达式的求值是我们人最熟悉的,但是对计算机来说却不好操作,因此,在计算结果时,往往会将中缀表达式转成其它表达式来操作(一般转成后缀表达式) 后缀表达式又称逆波兰表达式,与前缀表达式相似...return Integer.parseInt(stack.pop()); } 2)中缀表达式转后缀表达式 具体步骤如下: (1) 初始化两个栈:运算符栈s1和储存中间结果的栈s2; (2)...“(”,则直接压入s1 (5-2) 如果是右括号“)”,则依次弹出s1栈顶的运算符,并压入s2,直到遇到左括号为止,此时将这一对括号丢弃 (6)重复步骤2至5,直到表达式的最右边 (7)将s1中剩余的运算符依次弹出并压入...s2 (8)依次弹出s2中的元素并输出,结果的逆序即为中缀表达式对应的后缀表达式 举例说明:将中缀表达式“1+((2+3)×4)-5”转换为后缀表达式的过程如下: ?

    1.1K10

    中缀式变后缀式

    中缀式变后缀式 描述 人们的日常习惯是把算术表达式写成中缀式,但对于机器来说更“习惯于”后缀式,关于算术表达式的中缀式和后缀式的论述一般的数据结构书都有相关内容可供参看,这里不再赘述,现在你的任务是将中缀式变为后缀式...每组测试数据只有一行,是一个长度不超过1000的字符串,表示这个运算式的中缀式,每个运算式都是以“=”结束。这个表达式里只包含+-*/与小括号这几种符号。其中小括号可以嵌套使用。...数据保证输入的操作数中不会出现负数。 数据保证除数不会为0输出每组都输出该组中缀式相应的后缀式,要求相邻的操作数操作符用空格隔开。...houzui[k]=' '; houzui[k+1]='='; houzui[k+2]='\0'; printf("%s\n",houzui); } return 0; } //转

    31410

    处理递归调用:和子程序的调用类似,只是除了储存下一个指令的地址外,也将参数、区域变量等数据存入堆栈中。 表达式的转换[中缀表达式转后缀表达式]与求值(实际解决)。 二叉树的遍历。...res=29 Process finished with exit code 0 #中缀表达式转换为后缀表达式 大家看到,后缀表达式适合计算式进行运算,但是人却不太容易写出来,尤其是表达式很长的情况下...“(”,则直接压入s1 如果是右括号“)”,则依次弹出sl栈顶的运算符,并压入s2,直到遇到左括号为止,此时将这一对括号丢弃 重复步骤⒉至5,直到表达式的最右边 将s1中剩余的运算符依次弹出并压入s2...依次弹出s2中的元素并输出,结果的逆序即为中缀表达式对应的后缀表达式 #举例说明 将中缀表达式“1+((2+3)×4)-5”转换为后缀表达式的过程如下 因此结果为:"1 2 3 + 4 × + 5 -".../** * @author frx * @version 1.0 * @date 2022/12/27 19:04 * desc:中缀转后缀表达式 */ public class InfixToSuffix

    42510

    golang 计算器实现

    最关键的是,相比于将有优先级中缀表达式转换为无优先级中缀表达式,将一个中缀表达式转换为后缀表达式是比较简单的。同时,对后缀表达式进行计算也比较简单。而且,转换和计算都是利用栈的技术!   ...在我们讲解如何将中缀表达式转换为后缀表达式之前,我们先来说说对于一个后缀表达式,我们是如何计算的。...与前缀或后缀记法不同的是,中缀记法中括号是必需的。计算过程中必须用括号将操作符和对应的操作数括起来,用于指示运算的次序。   ...(b*c))-(d+e))   第二步:转换前缀与后缀表达式   前缀:把运算符号移动到对应的括号前面   则变成了:-( +(a *(bc)) +(de))   把括号去掉:-+a*bc+de 前缀式子出现...  后缀:把运算符号移动到对应的括号后面   则变成了:((a(bc)* )+ (de)+ )-   把括号去掉:abc*+de+- 后缀式子出现

    82220
    领券