- Арифметическое выражение: (4 + 3) * (5 – 2).
- Постфиксная форма: 4 3 + 5 2 – *.
- Алгоритм:
- если встречено число, то записать его в стек;
- если встречен знак, то произвести соответствующее действие с двумя верхними элементами стека.
2 | ||||||
---|---|---|---|---|---|---|
3 | 5 | 5 | 3 | |||
4 | 4 | 7 | 7 | 7 | 7 | 21 |
Запись «4» | Запись «3» | + «4» и «3» | Запись «5» | Запись «2» | – «5» и «2» | * «7» и «3» |
4 | 4 3 | 4 3 + | 4 3 + 5 | 4 3 + 5 2 | 4 3 + 5 2 – | 4 3 + 5 2 – * |
- Основные операции:
- создание стека: stack <тип_данных> <имя_стека> ;
- добавление в стек <имя_стека>.push(символ) ;
- удаление из стека <имя_стека>.pop() ;
- верхний элемент <имя_стека>.top() ;
- проверка на наполненность <имя_стека>.empty().