Curso 2023/2024
La siguiente solución contiene varios errores. Piensa cuáles son.
void Conjunto::vaciar() { return vaciar(raiz); } void Conjunto::vaciar(Nodo * & n) { if (n->izquierdo != nullptr) { vaciar(n->izquierdo); delete n; } else if (n->derecho != nullptr) { vaciar(n->derecho); delete n: } }
Aquí hay 4 errores:
Se utiliza incorrectamente return
.
El segundo método falla si raiz
vale nullptr
.
Sobra else
(y al corregir eso no hay que hacer delete
dos veces).
Falta que, tras vaciar el conjunto, quede 0 en la talla
y nullptr
en la raíz.
Por otra parte, aunque no sea un error, no es necesario
pasar n
por referencia.