Обратная польская запись

 

Алгоритм:

Пока строка содержит символы для чтения, читаем очередной символ. Далее рассматриваются варианты:
1) Если символ не является символом функции или скобкой, добавляем его к выходной строке.
2)

  1. Если встретили символ функции, помещаем его в стек.
  2. Если встретили символ функции и при этом стек не пустой, выталкиваем в выходную строку все символы функции, пока не встретим символ, имеющий больший приоритет или открывающую скобку.
  3. Если символ является закрывающей скобкой:
    Выталкиваем элементы из стека в выходную строку, пока верхним элементом стека не станет открывающая скобка. Если после этого на вершине стека находится символ функции, выталкиваем его в выходную строку.
  4. Если символ является открывающей скобкой, помещаем его в стек.

Код на Ideone.

One thought on “Обратная польская запись

  1. А разве я не проверял это на cpp.mazurok.com? Или Вы переделали программу?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *