我目前正在开展一个学校项目,我必须制作一个整数二叉树(特别是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行(我猜动态问题)。你能建议我如何解决它吗?