Witam, postanowiłem napisać sobie drzewo bst i umieścić w implementacji konstruktor kopiujący:
class bst_tree
{
public:
bst_tree();
~bst_tree();
bst_tree(bst_tree &tree);
bool isEmpty();
void insert(int value);
void dispay();
private:
struct node
{
int value;
std::unique_ptr<node> left;
std::unique_ptr<node>right;
node(int value);
node(std::unique_ptr<node> & node);
void print();
};
std::unique_ptr<node> root;
};
bst_tree::node::node(std::unique_ptr<node> & node){
value = node->value;
left = std::move(node->left);
right = std::move(node->right);
}
bst_tree::bst_tree(bst_tree & tree)
{
//tu jest problem
std::unique_ptr<node> p = std::make_unique<node>(tree);
root = std::move(p);
}
ale po pomyśleniu "pójdzie szybko" zderzyłem się z rzeczywistością, i nie wiem jak go napisać, powinien pole po polu "przepisywać" liczę na pomoc i uwagi