Rekursive Löschung einer Treelist

Hroudtwolf

Mitglied
Salve allerseits,

Ich hab mir ne Treelist-Klasse geschrieben und stehe nun vor einem grundlegenden Problem.
Selbstverständlich brauche ich eine Methode mir der ich die Liste total aus dem Speicher löschen kann.
Doch hieran scheitere ich zur Zeit noch.

Es ist generell so, dass in der Liste jedes Element Child-Elements, sowie einen linken und einen rechten Nachbarn haben kann.

Der interne Zeiger der Navigations-Oberklasse zeigt immer auf das aktuelle Listenelement.
Über einen "Erstes Element"-Zeiger verfügt sie nicht. Denn das wäre durch die dynamik einer verknüpften Liste nicht möglich.

Wie könnte ich also nun die komplette Liste mit allen seinen Elementen freigeben ?
Ich weiss dass dies nur rekursiv funktionieren kann.
Doch wie müsste ich im Detail vorgehen ?

MfG

Wolf
 
Hallo,

besitzt du einen Merker auf den Wurzelknoten? Wenn ja sollte es doch folgendes tun:
C++:
class TreeList {
private:
   vector<TreeList*> childs;
   ...
public:
   ~TreeList ()
   {
        for (int i = 0; i < childs.size(); i++) {
              delete childs[i];
        }
   }
}

TreeList root;
...
delete root;
oder?

Gruß,
RedWing
 
Zurück