0

我试图将一个对象插入 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
        }

当我注释掉 '==' 的情况时,它的输出似乎是正确的,但我知道对于比较相似的情况,它必须有它。

4

0 回答 0