26得票7回答
如何修改我的Shunting-Yard算法以接受一元运算符?

我一直在为课程实现JavaScript的Shunting-Yard算法。 以下是我的工作进展:var userInput = prompt("Enter in a mathematical expression:"); var postFix = InfixToPostfix(userInp...

12得票2回答
Shunting-Yard 验证表达式

我们使用Shunting-Yard算法来计算表达式。通过应用该算法,我们可以验证表达式。如果存在缺少操作数、括号不匹配和其他问题,则会失败。然而,Shunting-Yard算法支持的语法比人类可读的中缀更广泛。例如,1 + 2 + 1 2 1 2 + 所有这些都是向 Shunting-Yard...

12得票2回答
Shunting Yard表达式解析器中的一元减号

这是我的表达式解析器,使用逆波兰算法,除了一个情况,它都表现得很好。当我使用一元负号(比如 -2*3)时,它无法计算(我认为这是因为算法没有处理这种情况)。有简单的方法可以修复吗?(这只是一个简单的解析器,我只需要支持括号、加、减、乘、除和幂次运算)#include <cctype&gt...

10得票2回答
Shunting-yard算法中如何处理一元减号

在将中缀表达式转换为后缀表达式时,是否有更好的处理一元“-”的方法? 显而易见的方法是在每个一元“-”之前添加一个0。是否有更好的实现方法?谢谢!

9得票3回答
中缀表达式转后缀表达式的算法,需要考虑一元运算符。

算法的输入会是像这样的一个表达式: a+(-b) a*-b+c 即任何标准C编译器支持的表达式。 现在,我已经将输入格式化为令牌流,这些令牌包含信息,无论是操作符还是操作数。算法应该接受此输入并给出一个后缀表达式,以便我可以进行评估。 如果我使用标准转换算法,我无法区分一元和二元操作...

8得票4回答
如何在将中缀表达式转换为逆波兰表达式的过程中计算方法的参数数量

我有一个以下的表达式: MIN(MAX(AVG(AVG(4,2),2,3),SUM(1,2))) 我已经实现了逆波兰表达式中缀转换的shunting yard算法。 我已经添加了带有两个参数的MAX,MIN和AVG函数。但是,如果我想要实现可变数量的参数,则必须知道每个函数在中缀表达式中有多少...

8得票5回答
一个调车场算法存在的问题

我已经成功地在Java中实现了一个Shunting Yard算法。算法本身很简单,但我在tokenizer方面遇到了麻烦。目前,该算法可以处理除一件事外的所有内容。如何区分减法(-)和负数(-)呢? 例如4-3是减法,但-4+3是负数。 现在我知道了什么时候应该是负数,什么时候应该是减号,...

7得票9回答
基于栈的表达式求值在数学解析中的效率

我需要为学术目的编写一个应用程序,可以绘制用户输入的表达式,例如:f(x) = 1 - exp(3^(5*ln(cosx)) + x) 我选择使用Shunting-Yard算法将表达式转换为逆波兰表达式,并将原始函数(如“cos”)视为一元运算符。这意味着上面的函数将被转换为一系列标记,例如...