Árboles binarios de búsqueda se utilizan para organizar los datos secuenciales para su fácil recuperación. Cada nodo en un árbol de búsqueda binaria tiene entre cero y dos niños. El hijo izquierdo para un nodo es siempre menor que el nodo y el hijo derecho es siempre mayor. Así, cuando estamos en busca de un nodo específico, podemos comparar nuestro objetivo al nodo actual. Si nuestro objetivo es mayor que el nodo actual seguimos buscando por la rama derecha, si nuestro destino es menor que el nodo actual que la búsqueda por la rama izquierda. Esto proporciona una enorme ventaja en la búsqueda en comparación con caminar a través de una lista ordenada de estos valores. La eliminación de los nodos de un árbol binario es un poco más complicada que la adición de nuevos nodos o la búsqueda de los antiguos. Dependiendo de la situación, puede que tengamos que reorganizar el árbol para asegurar que los hijos de cada nodo están todavía bien equilibrada.
Instrucciones
Eliminación de un nodo hoja
1 Verificar que el nodo no tiene hijos.
2 Encuentra el padre del nodo. Establecer Ref niño del padre en nulo.
3 Eliminar el nodo de la matriz de almacenamiento.
Cómo borrar un nodo con un hijo
4 Verificar que el nodo tiene un solo hijo.
5 Encuentra el padre del nodo. Establecer Ref niño del padre para hacer referencia al hijo del nodo que está eliminando.
6 Eliminar el nodo de la matriz de almacenamiento.
Cómo borrar un nodo con dos hijos
7 Verificar que el nodo tiene dos hijos.
8 Encontrar el mayor nodo en el árbol a la izquierda del nodo (el predecesor). Esto se puede hacer mediante la intensificación dejaron en el árbol de un solo paso y, a continuación intensificando la derecha hasta que no haya más referencias adecuadas.
9 Ajuste la referencia de la derecha del predecesor para hacer referencia al hijo derecho del nodo que está eliminando.
10 Vuelva a colocar la referencia del nodo padre con su predecesor.
11 Eliminar el nodo de la matriz de almacenamiento.
Consejos y advertencias
- Deleciones múltiples pueden hacer que el árbol se desequilibre. Si usted encuentra que su programa se está ejecutando lentamente después de muchas supresiones, debe programarlo para equilibrar el árbol en alguna ocasión.