Advertisement

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)

还没有任何评论哟~