我有一个前缀表达式,只有拥有4个二进制运算符(+, - ,*,/)。一个简单的方法来评估这样的表达是将其转换为后缀表达式,然后评估该表达式。 但我在寻找一种算法,直接做到这一点,而不将其转换为任何其他的表达?
Answer 1:
简单而又重复的:
Evaluate(input):
Read a token from input.
If the token is a value:
Return the value of the token
If the token is a binary operator:
Let first_argument = Evaluate(input)
Let second_argument = Evaluate(input)
Return apply(operator, first_argument, second_argument)
Answer 2:
使用堆栈。 请将您的增值经销商和运营商,并开始弹出每个堆栈,一个运营商,另一个用于varaiablss(取决于元数跳跃的数量)。
文章来源: Algorithm to evaluate prefix expression?