Задание 9. Динамические структуры данных. Стек.
1. Напишите программу, которая определит, правильно ли расставлены скобки в выражении, если оно состоит из скобок типа: ( ) [ ] { }. (использовать структуру данных стек)
2. Пусть дана без ошибок формула, имеющая следующий синтаксис:
<формула>::=<цифра> | max(<формула>, < формула >) | min (<формула>,< формула >)
<цифра>::=0 1 2 3 4 5 6 7 8 9
Например, 8 или max(4, min(3, 5)) или min(min(3, 5), max(2, max(3, 4))).
Вычислить значение формулы, используя структуру данных стек.
3. В постфиксной записи (или обратной польской записи) операция записывается после двух операндов. Например, сумма двух чисел A и B записывается как A B +. Запись B C + D * обозначает, привычное нам (B + C) * D, а запись A B C + D * + означает A + (B + C) * D. Достоинство постфиксной записи в том, что она не требует скобок и дополнительных соглашений о приоритете операторов для своего чтения. В строке содержится выражение в обратной польской записи. Найти значение выражения, используя стек.
Дополнительная задача:
Дано выражение, содержащее целые числа, операции +, *, -, / и скобки любой степени вложенности. Вычислите значение записанного выражения, переведя его в обратную польскую запись.