【发布时间】:2012-04-18 18:15:40
【问题描述】:
之前可能被问过数百万次,但我根本无法理解这有什么问题。我不想在互联网上使用任何代码,所以我只是尝试对我的想法进行编程。这个或我的打印功能是错误的。下面的代码有什么问题吗?
void addNode(int value)
{
Node* newNode=new Node;
newNode->data=value;
if(root==NULL)
root=newNode;
else {
Node* temp=root,*parent;
while(temp!=NULL)
{
parent=temp;
if(temp->data == value)
return;
else if(temp->data < value)
temp=temp->left;
else
temp=temp->right;
}
temp=newNode;
}
}
【问题讨论】:
-
您永远不会分配任何节点的
left或right成员。 -
我正在使用“temp=temp->left”和“temp=temp->right”。这不算数吗?
-
@rolandbishop:不;这会更改您的局部变量以引用不同的节点,但是一旦找到插入点,您就不会修改树。
标签: c++ algorithm binary-search-tree