我正在尝试将对象插入到BST中,但是我的程序卡在一个看似无限的循环中,它将对象放在右边节点50次,左边放置一次,然后无限重复。
void insert(const T & x, BinaryNode* & t) const
{
if(t == NULL){
t = new BinaryNode(x, NULL, NULL);
//cout << "in the if" << endl;
}
else if(x.offense.compare(t->element.offense) < 0){
cout << "left" << endl;
insert(x, t->left);}
else if(x.offense.compare(t->element.offense) > 0){
cout << "right" << endl;
insert(x, t->right);}
else if(x.offense.compare(t->element.offense) == 0)
insert(x, t->right);
else
;//do nothing
}
当我将'=='的情况注释掉时,它的输出似乎是正确的但我知道在比较相似的情况下它必须有它。