我正在实施调车场算法。我无法检测何时缺少运算符的参数。维基百科条目在这个主题上非常糟糕,并且他们的代码在下面的示例中也崩溃了。
例如3 - (5 + )
不正确,因为+
缺少参数。
就在算法到达 之前)
,运算符堆栈包含- ( +
并且操作数堆栈包含3 5
。然后它是这样的:
+
它从运算符堆栈中弹出- 发现这
+
是一个二元运算符 - 弹出两个操作数,应用运算符并将结果 ( ) 推
8
送到操作数堆栈 - 然后它
(
从堆栈中弹出匹配项,并继续
那么我怎样才能检测到+
缺少参数呢?如果您还更新了维基百科,那就再好不过了 :-)