Ejercicio 3 - removerABB

Ejercicio 3 - removerABB

de Marcio Rivas Masullo -
Número de respuestas: 3

Buenas, no estoy entendiendo como usar la función delete. Podrían subir como queda el código de esta función? O alguna ayuda de como pensarlo?

Gracias.


En respuesta a Marcio Rivas Masullo

Re: Ejercicio 3 - removerABB

de Matias Richart -

Hola.

No me queda claro si tu duda es como implementar removerABB o como usar delete dentro de removerABB.

Si es lo primero, una idea de como encarar ese problema se presenta en este video: https://www.youtube.com/embed/HP1AFJl0j3s?start=620&end=2585&version=3 (a partir del minuto 34:25 se habla de remover)

Si es lo segundo, la función delete se usa para liberar memoria.

En este caso, si tenes un puntero de tipo ABB nodo; que apunta al nodo cuya memoria se quiere liberar, debes escribir la sentencia delete nodo;

Saludos

En respuesta a Matias Richart

Re: Ejercicio 3 - removerABB

de Lourdes Alejandra Couto Burgos -

Profe, yo tengo una duda de eso del delete. 

En removerMaxABB,

if(a-> der == NULL){
     ABB borrar = a;
     a = a -> izq;
    delete aux; 

}

esa parte de ahi, yo no deberia primero asignarle a  borrar -> izq = NULL, asi se me desconecta con todo el arbol y despues le aplico delete? 

if (a -> der == NULL){

    ABB borrar = a;

    a = a -> izq;

    borrar -> izq = NULL;

    delete aux;

}

entendi como lo hicieron en la solucion, solo que no me queda claro que pasa cuando aplico delete, si solo libero la memoria de ese nodo, o de todo lo que esta enganchado aun, osea todo el arbol. 



En respuesta a Lourdes Alejandra Couto Burgos

Re: Ejercicio 3 - removerABB

de Matias Richart -

Hola.

La operación delete solo libera el espacio de memoria al que apunta el puntero.

En este caso solo libera la memoria del nodo a que apunta el puntero borrar.

Por lo que, no es necesario asignar borarr->izq con NULL y el delete no eliminará todo el árbol.


Saludos