【发布时间】:2020-11-19 18:54:28
【问题描述】:
BST::BST()
{
root = nullptr;
}
BST::BST(const BST& rhs)
{
root = rhs.root;
root->left = rhs.root->left;
root->left = rhs.root->left;
TreeNode* DeepCopy = new TreeNode;
if (root != nullptr)
{
DeepCopy->info = rhs.root->info;
DeepCopy->left = rhs.root->left;
DeepCopy->right = rhs.root->right;
}
// Will this make a deep copy of the entire tree?
}
【问题讨论】:
-
// Will this make a deep copy of the entire tree?看起来不是这样。 -
你真的需要拷贝构造函数吗?另外,决定是复制节点还是与现有节点建立更多链接?智能指针?
-
DeepCopy是一个局部变量。你对它所做的一切都不会影响其他任何事情。该对象不会在函数结束时被删除,但您也没有引用它,也无法获得任何引用。这是造成泄漏的一种代价高昂的方法
标签: c++ binary-search-tree copy-constructor deep-copy