Моя задача - написать приложение (к сожалению, на C), которое читает выражения в инфиксной записи (с переменными, унарными и двоичными операторами) и сохраняет его в памяти, а затем оценивает его. Кроме того, проверки на правильность должны быть выполнены.
например:
3 * (А + В) - (- 2-78) * 2 + (0 * А)
После того, как я получил все значения, программа должна вычислить его.
Вопрос:
Каков наилучший способ сделать это? (С оптимизацией и проверкой)
Какие обозначения для выбора в качестве основы дерева?
Должен ли я представлять выражение в виде дерева? Если это так, я могу легко оптимизировать его (просто отбросить узлы, которые возвращают 0 или что-то еще).
Приветствия