Está en la página 1de 9

Instituto Politécnico Nacional

Escuela Superior de Ingeniería


Mecánica y Eléctrica
(ESIME)
Estructura y Base de Datos
Actividad N°17.3
“Eliminar un nodo de un árbol”
Cruz Zamora Oscar
Zacarías Tenorio Daniel
3CV9
Desarrollo

Las funciones fueron cambiadas de modo de que se le agrega


el padre del nodo para que en las misma funciones se
agregue un nuevo nodo.

como anteriormente se menciono que se agregara el padre del


nodo ahora el nuevo nodo apuntara a padre igualado con padre.
En el anterior nodo se agrega un nuevo campo del padre del nuevo
nodo, por lo que se le pasa el valor de ese nodo al crearNodo pasando
el número y padre.
Otro punto es que en insertarNodo apunta desde árbol a la derecha y
a la izquierda para indicarle quien es el padre de cada nodo.

Al a ver que se inserto un nuevo elemento se debe de saber quien es


el padre del nuevo elemento, por lo que se utilizaría NULL para
diferenciarlo
Ahora se agrega un nueva función la cual contara con 2 paramentros
los cuales son Nodo árbol para saber de que árbol se borrara y el
numero

Para esta función eliminar, se hará la condicional que consiste en si


árbol se encuentra NULL o vacio no realizara nada, en el caso
contrario se hará una revisión de la lista elemento por elemento, si el
elemento es menor debe de buscar por la izquierda y si el mayor
buscara por la derecha, y por ultimo en caso de encontrar el
elemento lo eliminara con una función llamada eliminarNodo con
parámetro nodo del elemento encotrado.
Si el árbol se encuentra vacío se retornara Null, en caso
contrario si el árbol tiene un hijo izquierdo se seleccionara el
hijo que esta mas izquierda, en caso de no tener hijo
izquierdo se retornara el mismo nodo.

Para la función de eliminar se utilizara la condicional de la


cual preguntara si el nodo tiene hijo de lado izquierdo y de
lado derecho, esto se hace con la finalidad de encontrar el
nodo que se encuentra más de lado izquierdo. Un ejemplo
seria que si el numero a eliminar es el 5 se pasa a una
posición a la derecha a partir del 5 y después a partir de esa
posición se ira pasando de uno en uno hasta el máximo
numero hacia la izquierda

Ahora se vera el como se borra un nodo de con subárbol hijo


es decir si tiene un hijo de lado derecho o del lado izquierdo.
Otro punto es que dependiendo del lado del hijo dicho hijo
tomara la posición del nodo padre remplazando el nodo.

Se emplea esta función la cual va a reemplazar dos nodo con los


parámetros del nodo del árbol que se quiere cambiar y el numero del
nodo que se desea reemplazar.

Para la función de reemplazar se colocara la condicional que


preguntara si el árbol tiene un padre para que apunte al nuevo hijo,
Y ahora se continua a asignar al hijo su nuevo padre, ahora si árbol
apunta al dato a eliminar es igual al árbol entonces padre apuntara a
la izquierda apuntando al dato.
Caso contrario árbol apunta a dato y es igual al árbol apuntando a
padre y a derecha y dato. Esto es para el caso en el que se desea
eliminar un hijo del lado derecho. Por ultimo para que el nuevo dato
apunte al nodo padre se realizara mediante una nueva condicional, si
el nuevo árbol apunta a padre y a derecha es igual al nuevoNodo que
será el hijo que reemplaza al anterior.
Otro punto a considerar es para que el nodo se engache al padre se
usara el nuevoNodo apunta a padre igualado con árbol apuntando a
padre.

En la anterior función se realizo la operación para eliminar del lado


derecho ahora en este caso será el izquierdo con la función
reemplazar se ulizara la función nodoEliminar apuntado al lado
izquierdo, pero ahora el numero en cuestión a eliminar no apunta a
ningún lado por lo que ahora solo queda eliminar el nodo o el dato.

Para destruir el nodo se usara una nueva función de delete, esto se


realiza direccionar ambos lado derecho y izquierdo a NULL o bien
borrar sus hijos y por ultimo utilizar delete nodo.
Conclusión
Al borrar el nodo, con él se van todos sus hijos. la manera de
recorrer un árbol binario es ir por la izquierda hasta el final y
después regresarse por cada nodo y recorrer el nodo derecho.
el ultimo nodo, debe estar apuntando a Null, por ende
encontrarlo no es difícil. Sin embargo, si el nodo que
queremos insertar ya existe, al realizar el proceso de
búsqueda daremos con él y entonces emitiremos el
correspondiente mensaje de error, indicando que el nodo ya
existe y por tanto no se puede insertar.
Bibliografías
Programación ATS. (2016, 19 diciembre). 119. Programación en C++ || Árboles ||

Eliminar un nodo del árbol - parte 1 [Vídeo]. YouTube.

https://www.youtube.com/watch?v=sQoRMJEV49o

Programación ATS. (2016b, diciembre 23). 121. Programación en C++ || Árboles ||

Eliminar un nodo del árbol - parte 3 [Vídeo]. YouTube.

https://www.youtube.com/watch?v=Kchi5guHGx0

Programación ATS. (2016b, diciembre 21). 120. Programación en C++ || Árboles ||

Eliminar un nodo del árbol - parte 2 [Vídeo]. YouTube.

https://www.youtube.com/watch?v=u9c-4qlvt24

Programación ATS. (2016e, diciembre 26). 122. Programación en C++ || Árboles ||

Eliminar un nodo del árbol - parte 4 [Vídeo]. YouTube.

https://www.youtube.com/watch?v=Lsi8NszksFk

También podría gustarte