矢量C ++中的二叉树

时间:2016-06-05 18:50:56

标签: c++

我目前正在开展一个学校项目,我必须制作一个整数二叉树(特别是Avl)并制作一个目录节点是AvlTree的目录。所以我用矢量来制作目录//矢量目录。 我的目录代码是:

  class ClassInvertedIndex
{
    public:
        ClassInvertedIndex();
        void insertToCatalog(int ,int );
        void deleteFromCatalog(int,int);
        vector<AvlTree> catalog;
    protected:

    private:
};

void ClassInvertedIndex::insertToCatalog(int a,int b){
 AvlTree aa;
 if(catalog.size()==0){
catalog.push_back(aa);
catalog[0].insertNode(catalog[0].root,a);
catalog[0].insertNode(catalog[0].root,b);
  return;
 }
else {
    for(unsigned i=0;i<catalog.size();i++){
        if(catalog[i].root->data==a){
            catalog[i].insertNode(catalog[i].root,b);
            return;
        }
    }

}
catalog.push_back(aa);
catalog[catalog.size()-1].insertNode(catalog[catalog.size()-1].root,a);
catalog[catalog.size()-1].insertNode(catalog[catalog.size()-1].root,b);
return ;
}

void ClassInvertedIndex::deleteFromCatalog(int a,int b){
if(catalog.size()==0)
    return;
for(unsigned i=0;i<catalog.size();i++){
 if(catalog[i].root->data==a){
    catalog[i].deleteNode(catalog[i].root,b);
 }
}
}

So when i give as input
cc.insertToCatalog(8,9);
  cc.insertToCatalog(8,7);
an avltree is with root 8 and nodes 7 & 9 is stored(the balance functions are in
the avltree class).
but if i put 
cc.insertToCatalog(8,9);
  cc.insertToCatalog(8,7);
 cc.insertToCatalog(0,1)

应创建第一个avl树(8,9,7),第二个(0,1)程序停止工作(但编译正常)。我试图在insertToCatalog函数中找到问题所在的位置在最后3行(我猜动态问题)。你能建议我如何解决它吗?

0 个答案:

没有答案