0 calificaciones0% encontró este documento útil (0 votos)
14 vistas9 páginas
Este documento describe cómo eliminar un nodo de un árbol binario. Se agrega un campo "padre" a cada nodo para rastrear las conexiones parentales. La función de eliminación comprueba si el nodo tiene hijos en uno o ambos lados, y reemplaza el nodo eliminado con su sucesor más a la izquierda. Si el nodo no tiene hijos, simplemente se elimina. Al final, la función "delete" se usa para liberar la memoria del nodo eliminado.
Este documento describe cómo eliminar un nodo de un árbol binario. Se agrega un campo "padre" a cada nodo para rastrear las conexiones parentales. La función de eliminación comprueba si el nodo tiene hijos en uno o ambos lados, y reemplaza el nodo eliminado con su sucesor más a la izquierda. Si el nodo no tiene hijos, simplemente se elimina. Al final, la función "delete" se usa para liberar la memoria del nodo eliminado.
Este documento describe cómo eliminar un nodo de un árbol binario. Se agrega un campo "padre" a cada nodo para rastrear las conexiones parentales. La función de eliminación comprueba si el nodo tiene hijos en uno o ambos lados, y reemplaza el nodo eliminado con su sucesor más a la izquierda. Si el nodo no tiene hijos, simplemente se elimina. Al final, la función "delete" se usa para liberar la memoria del nodo eliminado.
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.