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