递归求解波兰表达式
波兰表达式(前置表达式)递归定义
波兰表达式 = 一个数 | 运算符 波兰表达式 波兰表达式
其中 | 表示或
注:前置表达式不需要括号就可以表示优先级
递归算法(Python写法)
def exp(myExp) :
op = myExp.pop(0)
if op == "+" :
return exp(myExp) + exp(myExp)
elif op == "-" :
return exp(myExp) - exp(myExp)
elif op == "*" :
return exp(myExp) * exp(myExp)
elif op == "/" :
return exp(myExp) / exp(myExp)
else :
return int(op)
if __name__ == "__main__" :
preorderExp = input().split()
out = exp(preorderExp)
print(out)
}
递归求解中置表达式
定义
表达式 = 项 | 表达式 [±] 项
项 = 因子 | 项[*/] 因子
因子 = 整数 | ( 表达式 )