Arboles B

ESTRUCTURA DE DATOS Árbol B Docente: Carlos A. Ruiz De La Cruz Melo Correo: [email protected] ARBOL B Un

Views 106 Downloads 1 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

ESTRUCTURA DE DATOS

Árbol B

Docente: Carlos A. Ruiz De La Cruz Melo Correo: [email protected]

ARBOL B Un árbol B es un árbol de m ramas, con paginas también denominadas nodos, que almacenan un máximo de m-1 claves y que tienen las siguientes características: El número mínimo de claves por nodo es (m/2)-1, excepto la raíz que puede tener menos. En un árbol B, los nodos hojas están en un mismo nivel. El árbol siempre tiende a estar ordenado. Un árbol del cual parten m ramas, registrara un máximo de m-1 claves por nodo. Un factor básico en un árbol B es el orden (m), el cual nos dice que es el número máximo de ramas que pueden salir de un nodo.

Porque usar arboles B ? Los arboles B se usan cuando existe un volumen de información a procesar tan grande que se hace necesario almacenarla en disco, y en el cual los arboles ABB simples o arboles AVL no hacen un buen tiempo de acceso a la información registrada en memoria secundaria.

EJEMPLO DE ARBOL B Un nodo con espacio para 4 claves

Ejemplo de un árbol-B de ORDEN 5 y de profundidad 2.

16

5

10

81

45

78

85

97

99

EJEMPLO DE NO ARBOL B COMO ES DE ORDEN 5 DEBE TENER CADA NODO 2 CLAVES COMO MINIMO

16

5

10

45

ARBOL B vs ABB y AVL

ABB

AVL

Un ABB o un AVL solo puede registrar un dato en cada nodo, lo que causa que el acceso a disco se haga cada vez que se cargue un dato en el árbol.

DISCO

Arbol B

VENTAJAS DE ARBOLES B Para gran cantidad de información esencialmente cuando los nodos se alojan en almacenamiento secundario, evitando el uso reiterado de acceso al disco. La ventaja de un árbol B es que al tener un control sobre el número de nodos hijos que pueda tener un nodo interno, la altura del árbol disminuye, las tareas de tener que equilibrar el árbol también disminuyen, aumentando por consecuencia la eficiencia de la estructura. El número de consultas en un árbol B se puede predecir. El número de consultas no aumentara con el numero de registros a ordenar como si sucede con un árbol ABB simple.

DESVENTAJA DE ARBOLES B

El mantener un árbol B es mas complejo, tal es así que una operación de ingresar, borrar o modificar causa en un nodo unión o desunión obligando a una serie de operaciones para equilibrar el árbol.

Al insertar 44 las claves tienen el orden siguiente:

INSERCION DE CLAVES Las claves se van ordenando automáticamente en un árbol B

16, 44, 56, 67, 81 Se promociona clave del medio

16

56

16

56

56

67

81

67 56

44

67

56

81 56

67

81

16

44

67

81

la

INSERCION Insertamos: 72, 63 56

16

44

63

67

72

81

Luego insertamos: 95 56

16

44

72

63

67

81

95

INSERCION

Se insertan los siguientes valores: 8, 20, 26, 33, 48, 52, 84, 99 20

8

44

56

16

72

63 48 26

67

81

84

95

99

52

33 El árbol ha completado el nodo raíz,…que sucede si insertamos el valor 90

Se promociona la clave del centro y sube al nodo raiz.

INSERCION

Pero ya esta lleno!

90 20

8

16

44

56

63 48 26

33

52

72

67

81

84 95

99

INSERCION

Finalmente queda el árbol como se muestra

56

20

8

44

72

48

16 26

33

90

52 63

67

95 81

84

99

ELIMINACION DE CLAVES

Se eliminara la clave 85 43

12

38

48

43

12

38

73

63

76

85

95

63

76

95

98

73

48

98

ELIMINACION DE CLAVES

Se eliminara la clave 73 43

12

38

48 43

12

38

38

63

76

85

95

98

63

73

85

95

98

76

48

43

12

73

76

48

63

85

95

98

ELIMINACION DE CLAVES

Se eliminara la clave 48 43

12

38

48

43

12

38

73

63

76

85

95

76

63

73

85

95

98

98

ELIMINACION DE CLAVES

Se eliminara la clave12 43

12

38

73

48

63

76

85

95

98

76

85

95

98

73

38

43

48

63

ARBOL B +  El árbol B es bueno para la búsqueda de un elemento del árbol mediante su clave, limitando la cantidad de accesos al soporte drásticamente.  No obstante, si lo que se desea es encontrar un elemento y a partir de allí leer secuencialmente los siguientes elementos, nos encontramos a un problema difícil de solucionar que nos lleva al peor de los casos de tener que recorrer gran cantidad de nodos y realizando gran cantidad de accesos a soporte.  En ese caso se desearía tener una organización donde las claves se encuentren físicamente contiguas, ordenadas y una facilidad y gasto de pocos recursos para el mantenimiento (alta y bajas de claves).  El árbol B+ surge como una adecuada solución a este problema, combinando la estructura de un árbol B y permitiendo tanto el acceso por referencia como el acceso secuencial.

CARACTERISTICAS DE LOS ARBOL B + 1. Todas las paginas hojas tienen la misma altura 2. La información se encuentra ordenada. 3. Toda la información se encuentra almacenada en las paginas hoja, por lo que en las paginas internas se puede duplicar la claves. 4. En la raíz y en las paginas internas se encuentran almacenado índices o claves para llegar a un dato.

55

37

48

77

55

61

73

77

80

87

92

ARBOL B + Dada la siguiente secuencia de claves: 7,25,27,15,23,19,14,29,10, 50,18,22,46,17,70,33, 58 dibuje el árbol B+ de orden 5.

SOLUCION 7

7

15

25

27

7, 25, 27, 15

23

23

15

23

25

27

19, 14, 29

23

7

14

15

19

23

25

27

29

SOLUCION 23

7

7

14

10

15

19, 14, 29

19

23

14

23

14

25

27

10 15

19

14

7

10

14

29

15

23

23

19

25

27

29

50

27

23

25

27

29

50

SOLUCION 14

7

10

14

15

14

7

10

18 14

15

23

18

18

19

18

27

19

23

23

25

29

50

22

27

22 23

27

27

29

50

25

22,46,17,70,33, 58

SOLUCION 14

7

10

18

18

14

15

19

23

22

17

46, 17

27

27

23

29

7

10 14

15

70 27

18

18 17

19

50

25

23

14

46

46

22

46 23

25

27

29

50

70

SOLUCION 23

14

7

10

27

18

18 14

15

33, 58

17

19

46

22 23

25

27

46

50

29

33

58

70

ELIMINACION EN ARBOLES B+ La operación de borrado en árboles-B+ es mas simple que la operación de borrado en árboles-B. Esto ocurre porque las claves a eliminar siempre se encuentran en las paginas hojas. En general deben distinguirse los siguientes casos: 1. Si al eliminar una clave, queda mayor o igual al mínimo de claves, termina la operación de borrado. Las claves de las paginas raíz o internas no se modifican por mas que sean una copia de la clave eliminada en las hojas.

Eliminar la clave 25

25

10

13

25

27

29

ELIMINACION EN ARBOLES B+ Eliminar la clave 25

25

10

13

25

27

29

25

10

13

27

29

ELIMINACION EN ARBOLES B+ 2. Si al eliminar una clave, la cantidad de llaves queda menor al mínimo entonces debe realizarse una redistribución de claves, tanto en el índice como en las paginas hojas.

15

10

13

Eliminar la clave 27

25

15

17

21

25

27

ELIMINACION EN ARBOLES B+ 15

10

13

15

15

10

13

Eliminar la clave 27

25

17

21

25

27

21

25

21

15

17

ELIMINACION EN ARBOLES B+ 15

10

13

Eliminar la clave 21

21

15

17

21

15

10

13

15

17

25

25

ELIMINACION EN ARBOLES 29 B+ Eliminar clave 37 13

10

35

23

11

25 13

10

11 13

27

15

13

15

45

45 29

32

23

29

35

25

27

35

35 29

32

49

37

45

49

ELIMINACION EN ARBOLES B+ Eliminar clave 15, 51 y 48 25

15

10

13

29

20

20 15

17

19

21

48

24 25

27

29

48

51

31

45

60

66

ELIMINACION EN ARBOLES B+ Eliminar clave 60 25

15

10

13

29

20

20 17

19

21

48

24 25

27

29

60

66

31

45

ELIMINACION EN ARBOLES B+ Eliminar clave 31 25

15

10

13

29

20

20 17

19

21

45

24

45 25

27

29

31

66

ELIMINACION EN ARBOLES B+ 15

10

13

20 17

19

20

25

21

24

29

29 25

27

45

66

EJERCICIO Construya un árbol B y luego un árbol B+ a partir de la siguiente secuencia:

23, 56, 2, 14, 78, 44, 33, 38, 12, 19, 55, 67, 60, 48, 89, 74, 65, 5, 24, 28