Меня смущает проект, который я изучаю по курсу.
Я должен построить выражение дерева, я знаю, как работает алгоритм, но у меня есть трудности с настройкой узлов.
Преподаватель дал нам этот класс: Expression Node
Где у него есть 2 других подкласса: Константа и Оператор?
и в «классе дерева выражений»: где я строю выражение дерева? У меня есть стек с этим типом: Expression Node
мой вопрос: после того, как я назначил оператор или константу, как я могу передать его в стек, так как типы разные.
я работаю с C ++
благодарю вас.
Примените полиморфизм: нажмите указатели (или ссылки) на ваши узлы.
Так как ваш стек содержит элементы типа «ExpressionNode», он может принимать все типы, производные от него (константа и оператор).
Если у вас есть доступ к boost, Boost :: Вариант — это то, что вы ищете.
Увидеть этот, это ОО версия союза.
заголовочный файл
#include <boost/variant.hpp>
stack<boost::variant<int,char>> s;
s.push('+');
s.push(1);