12. TUZ_2-12 Оценка математических выражений в постфиксной нотации


TUZ_2-12 Оценка математических выражений в постфиксной нотации

TUZ_2-12 Оценка математических выражений в постфиксной нотации
2.12 Оценка математических выражений в постфиксной нотации
Целью этой задачи являются преобразование математических выражений из постфиксной нотации в инфиксную и их оценка.
В инфиксной нотации операторы в математическом выражении записываются между парами операндов, например a + b.
В постфиксной нотации оператор следует за парой операндов, например a b +. Соответственно, выражение 2 7 + 3 *,
записанное в постфиксной нотации, эквивалентно выражению (2 + 7) * 3 в инфиксной нотации, которое дает в результате число 27.
Ваша задача: написать функцию, возвращающую числовой результат, но не эквивалент в инфиксной нотации.
В табл. 2.12 показаны ожидаемые результаты для некоторых входных данных.
Таблица 2.12. Некоторые ожидаемые результаты для задачи оценки математических выражений, записанных в постфиксной нотации
Выражение Ожидаемый результат
5, 6, +, 7, * 77
3, 7, 9, *, + 66
3, 7, 9, /, + 3
8, -2, + 6

Алгоритм
.Алгоритм оценки выражения в постфиксной нотации выполняет следующие шаги.
1. Выбирает каждый элемент из заданного выражения в постфиксной нотации.
2. Если элемент является целым числом, то он добавляется в список Storage.
3. Если элемент является оператором (+, –, ∗, /), то из списка Storage извлекаются два последних элемента (операнда).
4. И затем с этой парой операндов выполняется соответствующая опе- рация (+, –, ∗, /). Результат операции сохраняется в переменной result и затем добавляется в список Storage.
5. Шаги 3–4 повторяются до тех пор, пока не будут обработаны все элементы в выражении.
6. В завершение возвращается результат – последний элемент в списке Storage.


time 1000 ms
memory 256 Mb

Комментарий учителя