0

我正在使用二叉搜索树。在这里,我正在编写一个函数来从树中删除一个项目。在以下代码中:

if(root = NULL)//if there is nothing in the tree
{
    cout<<"the Tree is empty"<<endl;//ouput to the screen
    return;//exit the function
}

bool isFound = false;//tells us if the item is found
Node* tmp = new Node();//declare a temp pointer
Node* tmp2 = new Node();;//declare a temp pointer
tmp* = *root;//assign the pointer to something

它正在调用复制构造函数,但正如我现在所拥有的那样,我只是复制这样的值:

Node& Node::operator= (const Node& node)
{
    data = node.data;
    left = node.left;
    right = node.right;
    return *this;
}
4

2 回答 2

1

您正在分配指针,以分配您需要的对象

*tmp = *root;

tmp并且root是类型Node**tmp并且*root是 类型Node

于 2013-03-13T11:38:34.330 回答
0
if(root = NULL)

将其更改为

if(root == NULL)

这也是错误的:

tmp* = *root;//assign the pointer to something
于 2013-03-13T11:43:18.080 回答