Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Обратная польская запись в информатике.

Татьяна Котовщикова Знаток (250), закрыт 1 год назад
Можете написать, как это решается? Выясните, что представляет собой обратная польская запись, и вычислите значение записанного с её помощью выражения: 1 2 + 3 → × 4 5 ×→ +.
Лучший ответ
Golyb_q Гуру (2957) 1 год назад
Если обычный пример это
2 + 2 [число 1] <операция> [число 2]
То обратная польская это
2 2 + [число 1] [число 2] <операция>

Вот пример:
Обычная инфиксная или как ее
2 + 2 * 2
Сначало идёт умножение (2 * 2)
2 + 4
Ну и ответ (2 + 4)
6

Обратная польская
2 2 2 * +
Видим что первая операция которая идёт после цифр - умножение. Берём 2 цифры перед операцией и умножаем (2 2 *)
2 4 +
Ну и ответ (2 4 +)
6

У обратной польской нотации есть классный прикол - ей не нужны скобки, чтобы выставлять приоритеты выполнения действий

Например:
Обычная
(2 + 2) * 2

Обратная польская
2 2 + 2 *
Тут видно что первое что встречается после цифр - сложение, поэтому его и делаем первым (2 2 +)
4 2 *
Ну и в итоге 8
Надеюсь понятно объяснил
Golyb_qГуру (2957) 1 год назад
Если пример такой
1 2 + 3 * 4 5 * +
(1 2 +)
3 3 * 4 5 * +
(3 3 *)
9 4 5 * +
(4 5 *)
9 20 +

29
Остальные ответы
Иван Сигаев Искусственный Интеллект (156835) 1 год назад
А что за операция "->" ?
В обратной польской записи используется стэк, числа помещаются в стэк, а операторы забирают необходимое количество и возвращают результат обратно


1 ( -- 1) запись в скобках показывает состояние стека до и после
2 ( 1 -- 1 2)
+ ( 1 2 -- 3) забрал две "позиции" из стэка, выполнил сложение, вернул результат
3 ( 3 -- 3 3)
итд
Похожие вопросы