hi 我正在写一个BST,并且写了下面的函数来添加Child。这个功能有什么问题
void addChild(T value)
{
temp = root;
while(0 != temp)
{
temp1 = temp;
if(value > temp->getValue())
temp = temp->getRightChild();
else
temp = temp->getLeftChild();
}
if(temp1->getValue() > value)
{
temp1->setRightChild(new Child(value));
}
else
{
temp1->setLeftChild(new Child(value));
}
}
我给“23 12 122 1 121 15”作为输入。 Root是我在类的构造函数中创建的节点23。
问题:当我在做树遍历时,我只得到23和15作为输出。 问题:我在这个功能中做错了什么?
也许你的遍历函数有问题吗?另外,我没有看到`temp`和`temp1`变量的声明。他们是全球性的? 无论如何,我建议使用调试器(例如`gdb`)来跟踪代码。应该很容易找到问题 – davka 2010-12-23 09:55:50