Algoritmo de eliminación
Desciende a la hoja donde existe la llave.
- Elimine la clave requerida y la referencia asociada del nodo.
- Si el nodo todavía tiene suficientes claves y referencias para satisfacer a los invariantes, deténgase.
- Si el nodo tiene muy pocas claves para satisfacer a los invariantes, pero su próximo hermano más viejo o más joven en el mismo nivel tiene más de lo necesario, distribuya las claves entre este nodo y el vecino. Repare las claves en el nivel anterior para representar que estos nodos ahora tienen un “punto de división” diferente entre ellos; Esto implica simplemente cambiar una clave en los niveles anteriores, sin eliminación o inserción.
- Si el nodo tiene muy pocas claves para satisfacer a la invariante, y el siguiente hermano mayor o menor está al mínimo para la invariante, entonces combine el nodo con su hermano; si el nodo no es una hoja, necesitaremos incorporar la “clave dividida” del padre en nuestra fusión. En cualquier caso, tendremos que repetir el algoritmo de eliminación en el nodo principal para eliminar la “clave dividida” que separó previamente estos nodos fusionados, a menos que el padre sea la raíz y que eliminemos la clave final de la raíz, en cuyo caso el nodo fusionado se convierte en la nueva raíz (y el árbol se ha vuelto un nivel más corto que antes).
- ¿Qué problemas algorítmicos abiertos mejorarían más la vida humana cuando se resuelvan?
- ¿Qué es un algoritmo basado en población? ¿Cuál es el propósito de esto?
- ¿Qué consejos y técnicas puedo aprender para retener mi comprensión de algoritmos y estructuras de datos?
- ¿Qué es un algoritmo en C?
- ¿Cuándo podrán los algoritmos de detección de imágenes filtrar imágenes ofensivas de manera confiable?
Referencias
CSci 340: árboles B +