void Arbol::destruirRec(Elemento * actual) { if (actual->getHijoIzquierdo() != NULL) { destruirRec(actual->getHijoIzquierdo()); } if (actual->getHijoDerecho() != NULL) { destruirRec(actual->getHijoDerecho()); } delete actual; }
void Arbol::destruirRec(Elemento * nodo) { if (nodo->getHijoIzq() != NULL) { destruirRec(nodo->getHijoIzq()); } if (nodo->getHijoDer() != NULL) { destruirRec(nodo->getHijoDer()); } // Primero se destruye a los hijos y luego al padre. delete nodo; }
void Lista::destruirRec(Elemento * nodo) { if (nodo->getProx() != NULL) { destruirRec(nodo->getProx()); } // Primero se destruye el último y hasta llegar a la cabeza. delete nodo; }
Lista::~Lista(){ if (cabeza != NULL) { destruirRec(cabeza); } }
Arbol::~Arbol(){ if (raiz != NULL) { destruirRec(raiz); } }
ArbolBinario::~ArbolBinario() { if (raiz != NULL) { destruirRec(raiz); } }
Arbol::~Arbol() { destruirRec(raiz); }