秒懂前缀、后缀、中缀

来源:互联网 发布:淘宝开店实名认证失败 编辑:程序博客网 时间:2024/04/30 06:31

前言:

看了 琛琛的博客后对前缀、中缀和后缀表示法有了一些了解,鉴于他博客文字比较多让人想看懂的话,要下一番功夫去看了。站在巨人的肩膀上,我对他的博客进行了“继承”和“多态”,如下:

共性:

都是对表达式的记法,因此也成为前/中/后缀记法。

异性:

运算符与操作数的相对位置。

背景:

中缀记法是人们很容易理解的一种表达方式,但计算机不易运算,有需求就有供给于是产生了前/后缀记法。

详解:

中缀表达式(中缀记法):运算符写在操作数中间,是人们用使用的表达方法

后缀表达式(逆波兰式):运算符在操作数后面,从左到右扫描,遇到数字放到栈中,遇到运算符(一元、二元)时从栈顶取出操作数进行相应运算,并用运算结果替换栈顶的取出操作数,然后再继续扫面奇遇的符号。

前缀表达式(波兰式):与波兰式方法雷同,唯一不同的是扫面方向从右向左。

举例:

中缀后缀前缀a-b+c*dab-cd*++-ab*cd(a-b)*c+dab-c*d++*-abcd(a-b)*(c+d)ab-cd+**-+ab+cda-b*c+dabc*-d++-a*bcd

说明:

最后的举例的表达式是部分我自己计算出来的,若有不对的地方请大侠指教。


1 0