AB
Size: a a a
AB
AB
SH
О
SH
AB
struct cluster {
shared_ptr<cluster> left,right;
weak_ptr<cluster> father;
cluster(){}
cluster(shared_ptr<cluster>& left,shared_ptr<cluster>& right) {
this->left = left;
this->right = right;
}
};
int main() {
auto left = make_shared<cluster>();
auto right = make_shared<cluster>();
auto father = make_shared<cluster>(left,right);
left->father = right->father = father;
return 0;
}
О
О
AB
SH
struct cluster {
shared_ptr<cluster> left,right;
weak_ptr<cluster> father;
cluster(){}
cluster(shared_ptr<cluster>& left,shared_ptr<cluster>& right) {
this->left = left;
this->right = right;
}
};
int main() {
auto left = make_shared<cluster>();
auto right = make_shared<cluster>();
auto father = make_shared<cluster>(left,right);
left->father = right->father = father;
return 0;
}
О
ID
SH
ID
О
shared_ptr<cluster> make_cluster(shared_ptr<cluster>& left,shared_ptr<cluster>& right) {
auto father = make_shared<cluster>(left,right);
left->father = right->father = father;
return father;
}
AB
SH
SH
AB