1

我写了一个堆栈类来评估后缀表达式。我知道如何做,除了它的顺序。假设我有一个简单的,例如:

A B - C +

我唯一的问题是,是 A - B 还是 B - A?我在网上找不到任何解释这部分评估的资源。

4

2 回答 2

2

您的运算符只是函数。因此,您可以根据需要定义这些功能。

我个人会定义 - 取两个参数,然后从第一个中减去第二个。这符合大多数人的期望,也符合现有 RPN 计算器的工作方式。例如,请参阅http://h41111.www4.hp.com/calculators/uk/en/articles/rpn.html了解更多信息。

于 2012-02-19T17:49:58.023 回答
0

简单的 ES6 实现:

const postfix = input => input.split(' ').reduce((result, token) => 
 isNaN(token)
  ? [ eval(`${result.shift()}${token}${result.shift()}`), ...result ] 
  : [ token, ...result ]
, [])[0];
于 2019-04-17T11:53:13.737 回答