【发布时间】:2012-06-24 08:22:28
【问题描述】:
我在 C++ 中的这个二叉树中的插入函数有问题。节点已正确插入,直到我需要再次向右侧或左侧添加节点。如果我已经在这些地方插入了节点,该函数认为我在左侧或右侧都没有任何节点。
这是我的代码:
void insert(string data)
{
srand(time(NULL));
int r;
node *aux=head;
node *n=new node(data);
if (head==NULL)
{
head =n;
return;
}
while (aux!=NULL)
{
r=rand()%100;
if (r>50)
{
cout<<"\nRandom is "<<r<<", Therefore we have to go to the right."<<endl;
aux=aux->right;
}
else
{
cout<<"\nRandom is "<<r<<", Therefore we have to go to the left."<<endl;
aux=aux->left;
if (aux!=NULL)
{
cout<<aux->getdata()<<endl;
}
}
}
aux=n;
cout<<"\nWe insert "<<aux->getdata()<<endl;
}
【问题讨论】:
-
欢迎来到 Stack Overflow!让陌生人通过检查来发现代码中的错误是没有效率的。您应该使用调试器来识别(或至少隔离)问题,然后返回一个更具体的问题(一旦您将其缩小到 10 行 test-case)。
-
问题不在代码中,它可以编译,问题在于插入我不知道如何让它检测为什么当我需要添加第四个节点时它没有'不知道第一个右节点和左节点已经在使用中。
标签: c++ binary-tree