如何修改标准Shunting Yard Algorithm以包含'wall'符号,|,表示函数参数的结尾?也就是说,支持修改后缀表示法(反向波兰表示法),它允许具有任意数量参数的函数。
修改后缀表示法的几个例子:
f (1,2)+9⟶| 1 2 f 9 +
f (1,2,3)+9⟶| 1 2 3 f 9 +
请,我正在寻找实际的修改,而不仅仅是如何做到这一点。
分流场算法
如果令牌是运营商o1,那么:
虽然在运算符堆栈的顶部有一个运算符标记o2,但
o1是右关联的,优先级小于o2,
-pop o2关闭运算符堆栈,进入输出队列;
答案 0 :(得分:0)
解决方案:
在步骤4中,除了将函数推送到堆栈外,还要写入|符号到输出后缀表达式。
当然,评估此修改后的后缀表达式的算法本身必须进行修改以考虑墙符号。