S
Size: a a a
S
О
struct cluster {
shared_ptr<cluster> left,right;
weak_ptr<cluster> father;
cluster(){}
cluster(cluster& left,cluster& right) {
right.father = left.father = shared_ptr<cluster>(this);
this->left = shared_ptr<cluster>(&left);
this->right = shared_ptr<cluster>(&right);
}
};
int main() {
cluster left;
cluster right;
cluster father(left,right);
return 0;
}
О
d
IZ
d
S
d
S
О
О
struct cluster {
shared_ptr<cluster> left,right;
weak_ptr<cluster> father;
cluster(){}
cluster(shared_ptr<cluster>& left,shared_ptr<cluster>& right) {
right->father = left->father = this;
О
IZ
О
IZ
О
О
IZ
О
IZ