Python中的中缀表达式转后缀表达式(逆波兰表达式RPN)以及其计算方法
发布时间
阅读量:
阅读量
逆波兰表达式RPN
逆波兰表示法Reverse Polish Notation(RPN),又称后缀表示法或suffix expression。
通常情况下,默认二元运算符位于其操作数之间,在这种情况下我们使用的是中缀表示法。
由波兰逻辑学家J.Lukasiewicz于1929年首次提出的一种独特的表示方法,在其中所有的算子都被放置在其操作数之后。
例如:
在中缀表示法中:
a+(b-c)d
而在后缀表示法中则写作:
abc-d+
其中,
在转换过程中,
首先处理括号内的内容,
接着执行减法操作,
最后进行乘法运算以获得最终结果。
中缀表达式转后缀表达式,Python代码如下:
def convert_to_suffix_expression(s):
"""
中缀表达式转后缀表达式
:param s: 中缀表达式
:return: 后缀表达式
"""
# 设置操作符优先级,数字越大优先级越高
kv = {'+': 1, '-': 1, '*': 2, '/': 2, '(': 0, ')': 3}
li = [] # 用来当栈存放操作符
result = '' # 返回结果
for i in s:
if i == '+' or i ==
全部评论 (0)
还没有任何评论哟~
