MD-Expo-Arboles B

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 60

REPÚBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA


EDUCACIÓN UNIVERSITARIA
U. P. T. del NORTE DE MONAGAS “LUDOVICO SILVA”
CARIPITO ESTADO MONAGAS

Speaker
Luis Richards. @luisrichardslaya
T.S.U. En Informática, C.I. 11.407.048
1
Arboles b
✗ Son estructuras de datos utilizadas para búsqueda de información.
Estos arboles no son binarios y se clasifican como una generación de
los arboles balanceados.
✗ Los arboles B fueron propuestos por los Doctores Bayer y Mcereight
en el año 1972.

✗ SE UTILIZAN PARA: Manejar archivos que contienen gran cantidad


de información como método de búsqueda entera

2
OBJETIVOS DE LOS
ARBOLES B
✗ Su objetivo consiste en poder recuperar y grabar datos cuando estos se
trabajan en memoria auxiliar ya que todas las estructuras son eficientes
para manejar la información en la memoria principal

✗ Los arboles B son estructuras que se emplean corrientemente para


manejar archivos que contienen una gran cantidad de información.

3
CARACTERÍSTICAS DE
LOS ARBOLES B
✗ Son estructuras formadas por páginas.
✗ Tienen N llaves + 1 apuntador.
✗ Gráficamente las paginas se pueden visualizar así:

✗ La parte superior representa un arreglo de enteros, donde se almacena


llaves.
✗ La parte inferior, representa un arreglo de apuntadores donde cada
componente puede almacenar una dirección de memoria donde existe
otra pagina de la estructura.
4
REGLAS DE LOS
ARBOLES B
✗ La raíz es la única página que puede contener un número menor de
llaves al indicado por N.
✗ Toda página que no sea la raíz debe contener un número de llaves
mayor o igual a N.
✗ Las llaves de todas y cada una de las páginas deben almacenarse
clasificas ascendentemente.
✗ Todas las hojas deben estar en un mismo nivel.
✗ La raíz puede ser eventualmente una hoja.
✗ Un árbol B no acepta hojas repetidas.

5
REGLAS DE LOS
ARBOLES B
✗ ¿LA SIGUIENTE ESTRUCTURA CUMPLE LAS REGLAS PARA
PODER LLAMARSE ÁRBOL B?

6
EJEMPLO ARBOL B
✗ Llaves o Claves
2

✗ Página

7
EJEMPLO ARBOL B
✗ M, es el grado del árbol y es máximo numero de hijos que puede tener
cualquier página
✗ Página
2 4 6 8
✗ M=5

✗ M-1, es el máximo numero de claves en una página

8
EJEMPLO ARBOL B
✗ El mínimo numero de claves en una página es m-1/2, excepto en la raíz

✗ Página
25

5 8 32 40

✗ Páginas validas ✗ Páginas nula

9
INSERCIÓN caso 1
✗ Se debe realizar la búsqueda para verificar donde debe ir la clave a
insertar
25
✗ Insertar 10

5 8 32 40

10
INSERCIÓN caso 1
✗ Se debe realizar la búsqueda para verificar donde debe ir la clave a
insertar
25
✗ Insertar 10

5 8 32 40

11
INSERCIÓN caso 1
✗ Se debe realizar la búsqueda para verificar donde debe ir la clave a
insertar
25
✗ Insertar 10

5 8 10 32 40

12
INSERCIÓN caso 2
✗ Insertar una clave en una página valida

25
✗ Insertar 30

5 8 10 32 40

13
INSERCIÓN caso 2
✗ Insertar una clave en una página valida

25
✗ Insertar 30

5 8 10 32 40

14
INSERCIÓN caso 2
✗ Insertar una clave en una página valida

25
✗ Insertar 30

5 8 10 32 40

15
INSERCIÓN caso 2
✗ Insertar una clave en una página valida

25
✗ Insertar 30

5 8 10 32 40

16
INSERCIÓN caso 2
✗ Insertar una clave en una página valida

25
✗ Insertar 30

5 8 10 30 32 40

17
INSERCIÓN caso 3
✗ Insertar una clave en una página valida

25
✗ Insertar 12

5 8 10 15 30 32 40

18
INSERCIÓN caso 3
✗ Insertar una clave en una página valida

25
✗ Insertar 12

5 8 10 12 15 30 32 40

19
INSERCIÓN caso 3
✗ Insertar una clave en una página valida

25
✗ Insertar 12

5 8 10 12 15 30 32 40

20
INSERCIÓN caso 3

10
✗ Insertar 12

5 8 12 15

21
INSERCIÓN caso 3
10 25

5 8 12 15 30 32 40

✗ Luego de insertar el 12

22
INSERCIÓN caso 4
✗ Insertar 21 10 13 25 32

5 8 11 12 14 15 18 20 30 31 33 40

✗ Luego de una inserción el elemento de en medio se trata de insertar en la


pagina padre y la división puede propagarse hasta la raíz y de ser
necesario crear un nuevo nivel hacia arriba
23
INSERCIÓN caso 4
✗ Insertar 21 10 13 25 32

5 8 11 12 14 15 18 20 21 30 31 33 40

✗ Luego de una inserción el elemento de en medio se trata de insertar en la


pagina padre y la división puede propagarse hasta la raíz y de ser
necesario crear un nuevo nivel hacia arriba
24
INSERCIÓN caso 4
✗ Insertar 21 10 13 18 25 32

5 8 11 12 14 15 20 21 30 31 33 40

✗ Se realizo la separación, el 18 subió a la pagina padre, pero ahora nos


encontramos que la pagina padre no es valida

25
INSERCIÓN caso 4
18
✗ Insertar 21

10 13 25 32

5 8 11 12 14 15 20 21 30 31 33 40

✗ Entonces hay que separar la pagina padre, subiendo a la raíz y creando


otro nivel
26
ELIMINAR CASO 1
✗ El dato a eliminar esta en una hoja y tras eliminarlo la hoja sigue siendo valida

5 18 25 46

✗ Eliminar 73

1 3 4 5 6 8 15 16 20 23 26 27 28 50 55 58 73

27
ELIMINAR CASO 1
✗ El dato a eliminar esta en una hoja y tras eliminarlo la hoja sigue siendo valida

5 18 25 46

✗ Eliminar 73

1 3 4 5 6 8 15 16 20 23 26 27 28 50 55 58 73

28
ELIMINAR CASO 1
✗ El dato a eliminar esta en una hoja y tras eliminarlo la hoja sigue siendo valida

5 18 25 46

✗ Eliminar 73

1 3 4 5 6 8 15 16 20 23 26 27 28 50 55 58

✗ Árbol final

29
ELIMINAR caso 2
✗ El dato a eliminar esta en una pagina interior que se sustituye por una clave que le
antecede o precede en orden ascendente
18
✗ Eliminar 46
5 8 25 46

1 2 4 6 7 15 16 20 23 26 27 28 50 55 58

30
ELIMINAR caso 2
18
✗ Eliminar 46
5 8 25 46

1 2 4 6 7 15 16 20 23 26 27 28 50 55 58

31
ELIMINAR caso 2
18
✗ Eliminar 46
5 8 25 46

1 2 4 6 7 15 16 20 23 26 27 28 50 55 58

✗ Busca el valor que le antecede o precede en este caso es 28 este va a ocupar su


lugar es decir “sube”
32
ELIMINAR caso 2
18
✗ Eliminar 46
5 8 25 28

1 2 4 6 7 15 16 20 23 26 27 50 55 58

33
ELIMINAR caso 3
✗ El dato a eliminar esta en una hoja y tras borrar el dato se queda con menos
del mínimo de claves. En tal caso puede hacerse un PRESTAMO a
cualquiera de los hermanos, si ninguno puede prestar una clave entonces se
realiza una FUSION. Con una pagina hermana y el elemento padre.

34
ELIMINAR caso 3
18
✗ Eliminar 3
3 5 8 25 46

1 2 4 5 6 7 15 16 20 23 26 27 28 50 55 58

35
ELIMINAR caso 3
18
✗ Eliminar 3
3 5 8 25 46

1 2 4 5 6 7 15 16 20 23 26 27 28 50 55 58

36
ELIMINAR caso 3
18
✗ Eliminar 3
5 8 25 46

1 2 4 5 6 7 15 16 20 23 26 27 28 50 55 58

37
ELIMINAR caso 3
18
✗ Eliminar 3
2 5 8 25 46

1 4 5 6 7 15 16 20 23 26 27 28 50 55 58

38
ELIMINAR caso 3
18
✗ Eliminar 3
2 5 8 25 46

1 4 5 6 7 15 16 20 23 26 27 28 50 55 58

39
ELIMINAR caso 3
18
✗ Eliminar 3
5 8 25 46

1 2 4 5 6 7 15 16 20 23 26 27 28 50 55 58

40
ELIMINAR caso 4
✗ Vamos a considerar la eventualidad de que la llave no este en una hoja, veamos el siguiente Árbol:
21 ✗ Eliminar 21

6 17 27 46

2 3 4 8 10 15 16 18 20 22 24 25 30 41 50 60 61

Eliminar la llave 21. Como esta llave no se encuentra en una hoja, el procedimiento a seguir es
explorar el árbol hasta encontrar su sucesor inorden y reemplazar la llave a eliminar por su sucesor
inorden y retirar el sucesor inorden de la pagina donde se encontró.
ELIMINAR caso 4
✗ Para el caso particular el árbol quedaría así:
22 ✗ Eliminar 21

6 17 27 46

2 3 4 8 10 15 16 18 20 24 25 30 41 50 60 61
ELIMINAR caso 4
✗ Para el caso particular el árbol quedaría así:
22 ✗ Eliminar 21

8 17 27 46

2 3 4 10 15 16 18 20 24 25 30 41 50 60 61

Siguiendo con el árbol inmediatamente anterior, al querer retirar el 6, se debe aplicar la misma regla
con la cual la estructura después de retirar el numero 6, quedaría así:.
ELIMINAR caso 5
✗ Eliminar 35 A
10 22 32 40

B C D E F
5 7 8 13 15 18 20 26 30 35 38 42 46

En este caso no existe pagina hermana izquierda ni derecha. Para esta situación se deben unir en
una sola pagina las llaves de la pagina D, la llave 32 y la llave 38 de la pagina F. La llave 32 se
retira de pagina A. el árbol final, después de este retiro debe verse así.
ELIMINAR caso 5
✗ Eliminar 35 A
10 22 40

B C E F
5 7 8 13 15 18 20 26 30 32 38 42 46

De esta manera se garantiza que el árbol continua manteniendo las propiedades de una estructura
B de orden 2
ELIMINAR caso 6
✗ Eliminar 25 A
10 22 40

B C E F
5 7 8 13 15 18 20 26 30 32 38 42 46

Existe una situación mas compleja y la podemos apreciar en el árbol siguiente, supongamos que
deseamos retirar la llave 25. en este caso no es aplicable el procedimiento descrito en los casos 2
o 3. en esta situación se deben unir en una sola hoja la llave 24, la llave 27 y las llaves de la
pagina ? Quedando la estructura así: >>>>>>>>>>>>>>>>>>>
ELIMINAR caso 6
✗ Eliminar 25 A
22

B
8 17 22

D E F G H
2 3 4 10 15 16 8 17 26 30 32 38 42 46

Sucede un problema. El árbol pierde las propiedades de una estructura B ya que el numero de
llaves de la pagina C es menor a N. en este caso se deben unir en una sola pagina las llaves de la
pagina B, la llave 22 y la llave de la pagina C, así: >>>>>>>>>>>>>>>>>>>>>>>
ELIMINAR caso 6
>>>>>>>>>>>>>>>>>>>>>>>>> 8 17 22 46

Y se deben ajustar los apuntadores, de tal manera que la estructura quede finalmente así:

8 17 22 46

2 3 4 10 15 16 18 20 24 27 30 41 50 60 61

De esta manera se reduce el árbol verticalmente ya que la raíz del árbol es una nueva pagina donde
la llave que antes conformaba la raíz esta incluida.
ELIMINAR caso 7
Veamos este caso al tratar de retirar la llave 21 del árbol, al aplicar el procedimiento descrito en el
caso 4, el árbol queda así:

22 ✗ Eliminar 21

6 17 27 46

2 3 4 8 10 15 16 18 20 24 30 41 50 60 61

Como el árbol todavía no recupera las propiedades de una estructura B, debemos seguir uniendo
paginas desde un nivel inferior a un nivel superior, así: >>>>>>>>>>>>>>>>>>>>>>>>>>>
ELIMINAR caso 7
Veamos este caso al tratar de retirar la llave 21 del árbol, al aplicar el procedimiento descrito en el
caso 4, el árbol queda así:

22

6 17 46

2 3 4 8 10 15 16 18 20 24 27 30 41 50 60 61

El árbol pierde las propiedades de una estructura B, En este caso debemos seguir uniendo paginas
desde un nivel inferior a un nivel superior así: >>>>>>>>>>>>>>>>>>>>>>>>>>>
ELIMINAR caso 7
El árbol disminuye su altura y por esto cambia de raíz:

6 17 22 46

2 3 4 8 10 15 16 18 20 24 27 30 41 50 60 61
ELIMINAR caso 8
Veamos esta situación en el siguiente árbol B de orden 2.

A 22

B
13 20 30 40 46

D E F G H I J
5 7 15 18 22 24 26 27 32 35 38 42 45 47 48

Al tratar de retirar la llave 22, se deben ejecutar los movimientos presentados en el caso 6.
veamos el árbol después de la primera unión de las paginas B, E y F.
ELIMINAR caso 8
Veamos esta situación en el siguiente árbol B de orden 2.
25

13 30 40 46

5 7 15 18 20 24 26 27 32 35 38 42 45 47 48

Ahora deberíamos unir las paginas B, A y C y disminuir la altura del árbol. No podemos unir esta
tres paginas en una sola ya que la cantidad de llaves de la nueva pagina sobrepasa el valor de
M. para este caso, debemos ejecutar los siguientes movimientos:
ELIMINAR caso 8
La llave 25 pasa a la pagina B y la llave 30 pasa a la pagina A. la hoja G debe pasar a ser hija de la
pagina B, quedando la estructura de la siguiente manera:

30

13 25 40 46

5 7 15 18 20 24 26 27 32 35 38 42 45 47 48
ELIMINAR caso 9
En este caso es un espejo del caso 8. Veamos el siguiente árbol de orden 1:
14

6 10 18

24 8 12 16 20

1 3 5 7 9 11 13 15 17 19 21
ELIMINAR caso 9
Al tratar de retirar la llave 17, el proceso a llevar a cabo se puede ver a través de los siguientes estados del árbol:

14

6 10 18

24 8 12 20

1 3 5 7 9 11 13 15 16 19 21

El árbol ha perdido las propiedades de una estrutura B de orden 1. Veamos como se recuperan: >>>>>>>>>>>>
ELIMINAR caso 9
A 14

B C
6 10

24 8 12 18 20

1 3 5 7 9 11 13 15 16 19 21

El árbol ha perdido las propiedades de una estrutura B de orden 1. Veamos como se recuperan: >>>>>>>>>>>>
ELIMINAR caso 9
Ahora debemos aplicar los movimientos relativos a este caso. La llave 14 pasa a la pagina C, la llave 10 pasa a la
raíz del árbol y el subárbol:

12

11 13
ELIMINAR caso 9
Pasa a ser hijo de la pagina C. Veamos finalmente como queda la estructura:

10

6 14

24 8 12 18 20

1 3 5 7 9 11 13 15 16 19 21
MUCHAS
GRACIAS!
✗ @luisrichardslaya
[email protected]

60

También podría gustarte