[Python]中缀表达式转前缀表达式

:order_dic = {‘*’:4,’$’:5,’/’:4,’+’:3,’-‘:3}if op1 == ‘(‘ or op2 == ‘(‘:op2 == ‘)’::if order_dic[op1] < order_dic[op2]:::prefix = ”stack = []string_tmp = ”for s in string[::-1]:if s == ‘(‘:string_tmp += ‘)’elif s == ‘)’:string_tmp += ‘(‘else:string_tmp += sfor s in string_tmp:if s.isalpha():prefix = s + prefixelse:while len(stack) and opOrder(stack[-1],s):op = stack.pop()prefix = op + prefixif len(stack) == 0 or s != ‘)’:stack.append(s)else:stack.pop()if len(stack):prefix = ”.join(stack) + prefixreturn prefixif __name__ == ‘__main__’:for string in [‘A+B*C’,'(A+B)*C’,'((A-(B+C))*D)$(E+F)’]:print string,’==>’,infix2prefix(string)

输出

>>> A+B*C ==> +A*BC(A+B)*C ==> *+ABC((A-(B+C))*D)$(E+F) ==> $*-A+BCD+EF

,最困难之时,就是我们离成功不远之日。

[Python]中缀表达式转前缀表达式

相关文章:

你感兴趣的文章:

标签云: