Информатика • 11 класс
309

Анализ и вычисление арифметических выражений с помощью стеков (C++)

  • Арифметическое выражение: (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().
Было полезно?

Рекомендуем

Вы учитель или ученик?
Познакомьтесь с нашим образовательным онлайн-сервисом с тысячами интерактивных работ
Учителю
Удобно проводить уроки в классе, назначать работы на дом и анализировать результаты всего класса или конкретных учеников
Ученику
Самостоятельно изучать новые и повторять пройденные темы, готовиться по индивидуальной траектории и оценивать результаты на наглядных графиках
Зарегистрироваться в «Облаке знаний»