- Пример преобразования и вычисления:
- Рассмотрим выражение: (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 = [0] * 100 # стек реализован как массив | |
index = 0 # индекс элемента стека def push (st, element, size): size += 1 st [size] = element return size | def pop (st, size): st [size] = 0 size -= 1 return size |
index = 0 # индекс вершины стека | |