Árboles B M.C. Meliza Contreras González. 2 Eliminación de un nodo en un árbol B La eliminación...

7
Árboles B M.C. Meliza Contreras González

Transcript of Árboles B M.C. Meliza Contreras González. 2 Eliminación de un nodo en un árbol B La eliminación...

Page 1: Árboles B M.C. Meliza Contreras González. 2 Eliminación de un nodo en un árbol B La eliminación de un elemento es directa si no se requiere corrección.

Árboles B

M.C. Meliza Contreras González

Page 2: Árboles B M.C. Meliza Contreras González. 2 Eliminación de un nodo en un árbol B La eliminación de un elemento es directa si no se requiere corrección.

2

Eliminación de un nodo en un árbol B

La eliminación de un elemento es directa si no se requiere corrección para garantizar sus propiedades.

Hay dos estrategias populares para eliminar un nodo de un árbol B.

1. localizar y eliminar el elemento, y luego corregir2. hacer una única pasada de arriba a abajo por el árbol, pero cada vez que

se visita un nodo, reestructurar el árbol para que cuando se encuentre el elemento a ser borrado, pueda eliminarse sin necesidad de continuar reestructurando

Se pueden dar dos problemas al eliminar elementos: primero, el elemento puede

ser un separador de un nodo interno. Segundo, puede suceder que al borrar el elemento, el número de elementos del nodo quede debajo de la cota mínima.

Page 3: Árboles B M.C. Meliza Contreras González. 2 Eliminación de un nodo en un árbol B La eliminación de un elemento es directa si no se requiere corrección.

3

Eliminación de un elemento del nodo hoja

1. Busque el valor a eliminar.2. Si el valor se encuentra en un nodo hoja, se elimina directamente la

clave, posiblemente dejándolo con muy pocos elementos; por lo que se requerirán cambios adicionales en el árbol.

6 | 9

2 | 4 10 | 157

Árbol de orden 1, Eliminación del 15

6 | 9

2 | 4 10 7

6 | 9

2 | 4 10 | 157

Árbol de orden 1, Eliminación del 7

6 | 9

2 | 4 10 | 15

Page 4: Árboles B M.C. Meliza Contreras González. 2 Eliminación de un nodo en un árbol B La eliminación de un elemento es directa si no se requiere corrección.

4

Eliminación de un elemento de un nodo interno

Cada elemento de un nodo interno actúa como valor separador para dos subárboles, y cuando ese elemento es eliminado, pueden suceder dos casos

1. En el primero, tanto el hijo izquierdo como el derecho tienen el número mínimo de elementos

2. En el segundo caso, uno de los dos nodos hijos tienen un número de elementos mayor que el mínimo.

.

Page 5: Árboles B M.C. Meliza Contreras González. 2 Eliminación de un nodo en un árbol B La eliminación de un elemento es directa si no se requiere corrección.

5

Eliminación de un elemento de un nodo interno

Primer Caso

1. Tanto el hijo izquierdo como el derecho tienen el número mínimo de elementos, n. Pueden entonces fundirse en un único nodo con 2n elementos.

6

4 15 4 | 15

30 | 38 | 43

44 | 50 10 | 20 | 25 32 | 34 40 | 4210 | 20

Árbol de orden 1, Eliminación del 6

Árbol de orden 2, Eliminación del 38

30 | 43

44 | 50 10 | 20 | 25 32|34|40 | 4210 | 20

Page 6: Árboles B M.C. Meliza Contreras González. 2 Eliminación de un nodo en un árbol B La eliminación de un elemento es directa si no se requiere corrección.

6

Eliminación de un elemento de un nodo interno

Segundo CasoUno de los dos nodos hijos tienen un número de elementos mayor que el mínimo. Entonces se debe hallar un nuevo separador para estos dos subárboles.

Note que el mayor elemento del árbol izquierdo es el mayor elemento que es menor que el separador. De la misma forma, el menor elemento del subárbol derecho es el menor elemento que es mayor que el separador. Ambos elementos se encuentran en nodos hoja, y cualquiera de los dos puede ser el nuevo separador.

1. Si el valor se encuentra en un nodo interno, escoja un nuevo separador (puede ser el mayor elemento del subárbol izquierdo o el menor elemento del subárbol derecho), elimínelo del nodo hoja en que se encuentra, y reemplace el elemento a eliminar por el nuevo separador.

2. Como se ha eliminado un elemento de un nodo hoja, se debe tratar este caso de manera equivalente.

Page 7: Árboles B M.C. Meliza Contreras González. 2 Eliminación de un nodo en un árbol B La eliminación de un elemento es directa si no se requiere corrección.

30 | 38 | 44 | 56

58 | 6010 | 20 | 25 32 | 34 40 | 4210 | 20 | 25 50 | 52

Ejemplo

Árbol de orden 2, Eliminación del 43

30 | 38 | 43 | 56

58 | 6010 | 20 | 25 32 | 34 40 | 4210 | 20 | 25 44 | 50 | 52