如何完全删除具有可变子级数的树?

时间:2019-03-22 17:04:01

标签: class c++11 tree destructor delete-operator

我必须完全删除具有可变数量的子代的树。删除后,我必须创建一个新对象,我的代码将停止工作。这就是我正在做的-

struct node {
    string data;
    vector<node*> child;
};

class lin
{
    vector<node*> pwd;
    node* root;

    public:

    lin()
    {   string m;
        root = newNode(m);
        pwd.push_back(root);
    }

//other functions..
}

int main(){
    lin* obj = new lin();

    while(condition){
        delete obj;
        lin* obj = new lin(); 
    }
}

我什至尝试使用析构函数分别删除节点,但没有收获。

    ~lin(){
        cout<<"GONE"<<endl;
        int l = (root->child).size();
        for(int i=0;i<l;i++)
        {
            delete (root->child)[i];    
        }   
        delete root;
    }

有人可以指出我的错误并提出更好的方法吗?

0 个答案:

没有答案