Оценка постфиксной нотации - PullRequest
1 голос
/ 19 февраля 2012

Я написал класс стека для оценки выражения postfix.Я понимаю, как это сделать, за исключением порядка.Допустим, у меня есть простой пример:

A B - C +

Мой единственный вопрос: это будет A - B или B - A?Я не могу найти какой-либо ресурс в Интернете, который объясняет эту часть оценки.

Ответы [ 2 ]

2 голосов
/ 19 февраля 2012

Ваши операторы - это просто функции. Таким образом, вы можете определить эти функции по своему усмотрению.

Я бы лично определил - взять два аргумента и вычесть второй из первого. Это будет соответствовать ожиданиям большинства людей, а также принципам работы существующих калькуляторов RPN. См., Например, http://h41111.www4.hp.com/calculators/uk/en/articles/rpn.html для получения дополнительной информации об этом.

0 голосов
/ 17 апреля 2019

Простая реализация ES6:

const postfix = input => input.split(' ').reduce((result, token) => 
 isNaN(token)
  ? [ eval(`${result.shift()}${token}${result.shift()}`), ...result ] 
  : [ token, ...result ]
, [])[0];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...