【发布时间】:2013-12-06 10:19:39
【问题描述】:
阅读 Stacks,所以我尝试了这个 Infix to Postfix 练习(找到 here)。你必须滚动一点才能看到他们的代码。我试图尽可能忠实于他们最初的实现。
我的代码:http://pastebin.com/dG4Ku14n
我在第 18 行(我在其中定义 peek 变量)遇到错误。它说列表超出范围但我不应该调用列表吗?当我在第 49 行使用“prec[peek]”时,它不应该只是存储在变量中,实际错误应该出现在文档的后面吗?
我确信这段代码比我想象的更有趣。任何帮助,将不胜感激。我应该重新开始吗?
短版:
peek = operator_stack[len(operator_stack)-1]
for element in infix:
if:
#code
else:
while not operator_stack and prec[peek] >= prec[element]:
output_queue.append(operator_stack.pop())
operator_stack.append(element)
预期输出:
A B * C + D *
【问题讨论】:
-
请将您的代码缩减为short, self-contained, correct example 并将其直接包含在问题中。
-
请发布您的预期输出
-
添加了预期输出
-
@pope 我想虽然你
tried to stay as true to their original implementation as possible.它并没有那样发生:(
标签: python python-3.x stack