码迷,mamicode.com
首页 > 其他好文 > 详细

中缀表达式转后缀表达式

时间:2016-12-24 22:37:26      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:12月   标准   优先   eve   它的   2014年   表达式   纪念   需要   

写之前应该介绍一个厉害的波兰数学家--Jan Lukasiewicz(鲁卡谢维奇),他想到了一种不需要括号的后缀表达法,我们为了纪念他,把它称为逆波兰(Reverse Polish Notation,RPN)表示。

我们把平时所用的标准四则运算表达式,如:9+(3-1)×3+10/2,称为中缀表达式。

把9 3 1 - 3 * + 10 2 / +(此处由上一行的中缀表达式例子转化而来) 这种不需要括号表示的形式叫做后缀表达式,也是计算机非常喜欢的计算式。

转换规则:

  从左到右遍历中缀表达式的每个数字和符号,若是数字就输出,即成为后缀表达式的一部分;若是符号,则判断其与栈顶符号的优先级,是右括号或优先级低于栈顶符号(乘除优先加减)则栈顶元素依次出栈并输出,并将当前符号进栈,一直到最终输出后缀表达式。

  注意:从左到右遇到的左括号也要进栈。其它的按照规则进出栈。

  最核心的原理还是栈的后进先出,只是将符号作为进栈出栈的元素。

写于2014年12月24日。

中缀表达式转后缀表达式

标签:12月   标准   优先   eve   它的   2014年   表达式   纪念   需要   

原文地址:http://www.cnblogs.com/xiangxinhouse/p/6218533.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!