Объясните Обратную польскую запись

0 голосов
16 просмотров

Объясните Обратную польскую запись


Информатика (340 баллов) | 16 просмотров
Дан 1 ответ
0 голосов

Есть стек чисел (условно) бесконечной глубины.

Операция (сложение, вычитание, умножение, деление и т. д.) выполняется над элементом(ами) в самом верху стека. Результат отправляется обратно в стек.

Это дает возможность выполнять сложные вычисления с учетом правил приоритета операторов, т. к. можно хранить результаты предыдущих вычислений в стеке.

Например, (5 + 1) * (6 - 2) запишется так:
5 1 + (сейчас в стеке по адресу 0 лежит 6) 6 2 - (сейчас в стеке по адресу -1 лежит 6, а по адресу 0 лежит 4) * (сейчас в стеке по адресу 0 лежит 24).

Стек:

Адрес Число
0  24
-1  -
-2  -
...  -

(9.2k баллов)