【发布时间】:2017-03-21 04:36:36
【问题描述】:
我在玩前缀评估的问题,我想只使用一个队列来评估它们。这是我的伪代码
while Q has more than 1 element
if the pattern operand, number, number occurs
op=dequeue(Q)
num1=dequeue(Q)
num2=dequeue(Q)
eval=evaluate(op,num1,num2)
enqueue(Q,eval)
else
elem=dequeue(Q)
enqueue(Q,elem)
我认为我的逻辑对于格式正确的前缀操作是正确的,但我不确定如何解释无效的前缀语法,例如 10+4。
现在,我的算法会将 10 出列,然后在最后将其入队,这将成为正确的前缀并被评估,但我不希望它这样做。是否有一些前提条件来确保语法正确?
【问题讨论】: