2016-04-08 4 views
0

В то время как я проходил через постфикс в этом site Я просто смущен, так как после определения префикса infix и postfox он объясняет свое правило, как применять postfix, поскольку он полностью говорит: Префиксная нотация выражений требует, чтобы все операторы предшествуют двум операндам, над которыми они работают. Postfix, с другой стороны, требует, чтобы его операторы приходили после соответствующих операндов.Learning Postfix

Примеры:

A + B * C = Нормальная (Infix)

A + B * C = Теперь, если мы хотим, чтобы преобразовать это в префиксе мы должны переместить все оператора непосредственно перед два операнда, над которыми они работают. i.e + дойдет до того, как A и * придут раньше B. Хорошо пока так хорошо.
+ A * BC = Префикс

A + B * C = Теперь, если мы хотим, чтобы преобразовать это в постфиксу мы должны двигаться оператор только после двух операндов они работают, т.е. + должны прийти после того, как В и * придет после C. Согласно правилу это должно быть так: AB + C *, но в примере это нам:
ABC * + = Postfix.

Пожалуйста, объясните мне, где я ошибаюсь.

Заранее спасибо

-
Привет
Прадипом

ответ

1

Вы должны прочитать его в том порядке, они будут применяться. Сначала * будет применен к B и C; то к результату этого вычисления будет применен +. Таким образом, сайт правильный.

Обратите внимание, что это не имеет ничего общего с Python, который не поддерживает постфиксную нотацию.

+0

Короче говоря, 'ab + c *' совпадает с символом '(a + b) * c', который не является таким же, как' a + (b * c) '(что является тем, что' a + b * c' обычно означает). – Vatine