RN
class Data{
public:
std::vector<Data*> child;
Data* parent = nullptr;
//...................
}
И классы которые сидят в векторе child могут иметь еще своих потомков. Мб кто знает как такое можно скопировать ? У меня есть конечно вариант с рекурсией и перебором вектора child, но я не знаю или это самый оптимальный вариант.