Как полностью удалить дерево с переменным числом детей? - PullRequest
0 голосов
/ 22 марта 2019

Я должен полностью удалить дерево с переменным числом детей. После удаления мне нужно создать новый объект, к которому перестает работать мой код. Вот что я делаю -

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;
    }

Может кто-нибудь указать на мою ошибку и предложить лучший способ сделать это?

...