gpt4 book ai didi

c - 使用 C 中的队列评估前缀操作

转载 作者:行者123 更新时间:2023-11-30 16:48:34 33 4
gpt4 key购买 nike

我正在研究前缀评估的问题,我想仅使用队列来评估它们。这是我的伪代码

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 出队,然后在末尾将其入队,然后它将成为正确的前缀并进行评估,但我不希望它这样做。是否有一些前提条件来确保语法正确?

最佳答案

如果您有一个函数可以弹出队列的第一个元素而不将其出队,则可以在 else 路径中使用它并使用 while(第一个元素不是操作数)来使无效元素出队。这至少可以保证队列中的第一项是操作数。

关于c - 使用 C 中的队列评估前缀操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42918549/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com