выражение дерева — настройка узла

Меня смущает проект, который я изучаю по курсу.
Я должен построить выражение дерева, я знаю, как работает алгоритм, но у меня есть трудности с настройкой узлов.

Преподаватель дал нам этот класс: Expression Node
Где у него есть 2 других подкласса: Константа и Оператор?

и в «классе дерева выражений»: где я строю выражение дерева? У меня есть стек с этим типом: Expression Node

мой вопрос: после того, как я назначил оператор или константу, как я могу передать его в стек, так как типы разные.

я работаю с C ++
благодарю вас.

0

Решение

Примените полиморфизм: нажмите указатели (или ссылки) на ваши узлы.
Так как ваш стек содержит элементы типа «ExpressionNode», он может принимать все типы, производные от него (константа и оператор).

1

Другие решения

Если у вас есть доступ к boost, Boost :: Вариант — это то, что вы ищете.
Увидеть этот, это ОО версия союза.

заголовочный файл

#include <boost/variant.hpp>

stack<boost::variant<int,char>> s;
s.push('+');
s.push(1);
0

По вопросам рекламы [email protected]