在二进制搜索树C ++中添加对象时的无限循环

时间:2013-11-05 22:32:24

标签: c++ pointers binary-search-tree

我正在尝试将对象插入到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
        }

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

0 个答案:

没有答案