根据我学这个这个知识点的经验,可能有很都人学到这个知识点时都是一脸懵比,啥符号后移,都是啥啥啥,其实吧,这个还是比较简单的(狗头保命),接下来,就有小编我把这个知识点给掰开细讲,保证让大家明明白白,那么,走起~
为了能让大家更好地理解这个知识点,我会这个知识点分为以下两点:加减,加减乘除
1. 加减(ab+,ab-)
所谓两个元素加减,然后再把符号移到后面,这里可能就会有人问,元素,难道不是数吗,不要惊讶,马上就会告诉你答案,下面先看两个例子
求下面运算表达式的后缀式
下面是答案
这时可能就会有人问,为什么一个符号会放在ab后面,而另一个则两个符号都放在abc后面,在这里我突然间想到了一个名为球球大作战的游戏,那里面的球既可以融合,也可以分裂,而我们的运算表达式又何尝不是如此?
根据我们的习惯,我们在算a-b+c时我们一般会先算出a-b的值,然后再算出这个值加c的值,注意,先前这里是三个元素,算完a+b后会变成两个,再+c之后又会变成一个,你可能感觉懂点了什么,这个不急,再看我下面的示例
a-b+c | A+c |
---|---|
(ab-)c+ | Ac+ |
a-(b+c) | a(bc+)- |
a-B | aB- |
当然是从左往右看了,其实这些的本质就是我颜色标记的部分,只要我们利用球球大作战的思想,把两个甚至多个元素合并为一个,化为他们的最终式子
(标记的那两个),你就会发现这些突然会特别简单,下面我再出两道题
这里我们先把括号里的内容看为一个元素,那么就变成了
好了,接下来就是球球大作战的合并过程了,这里直接从左往右看可以了
这里先把23-A看作一个元素及直接把他们合并,然会再把合并的结合和2合并,然后继续无限套娃,下面是结果
2. 乘除
这里无非就是把乘除以及它前面两个元素当成一个元素就可以了
当然,接下来就是用C语言实现后缀式的转化了,且看我的下一章后缀表达式(C语言版)