You are on page 1of 73

1

ARBOLES
AVL, 2-3, B
Karim Guevara Puente de la Vega
2015

ndice

rbol perfectamente equilibrado


rbol AVL
rbol 2-3
rbol B, B*, B+

BST equilibrados

Caracterstica de BST
Ventaja: insercin, eliminacin y bsqueda O(logn)
n = nmero de niveles
Desventaja: se pierde eficiencia cuando h m y su
complejidad se iguala a la de las listas
m = nmero de nodos
h = altura del rbol

Solucin: hay que mantener el rbol equilibrado


Equilibrio perfecto
Otros tipos de equilibrio (AVL, arboles rojo-negros, etc.)

BST perfectamente equilibrados

Equilibrio perfecto
Para cada nodo, el nmero de nodos del subrbol
izquierdo y el nmero de nodos del subrbol derecho
difieren como mximo en 1 unidad

BST perfectamente equilibrado

Desplazar la mitad de nodos que sobran de un lado al


otro.
Mantener la condicin de BST al desplazar los nodos
Desplazar a derechas:
1. Insertar la Raz en el subrbol derecho
2. Colocar como Raz al mayor del subrbol
izquierdo
3. Repetir 1 y 2 tantas veces como el nmero de
nodos a desplazar.
Desplazar a izquierdas: (simtrico)

Operaciones auxiliares:
equilibrar(NodoABB actual)
desplazarDerecha(NodoABB actual, int cuantos)
desplazarIzquierda(NodoABB actual, int cuantos)
Modificar algoritmos de insercin/borrado
- Re-equilibrado se hace desde arriba hacia abajo

BST perfectamente equilibrados

Arboles AVL - Definicin

Un rbol AVL (Adelson-Velskii y Landis) es un rbol


binario de bsqueda equilibrado
Para cada nodo, las alturas de sus subrboles izquierdo y
derecho no difieren en ms de 1
El coste de sus operaciones es, por lo tanto, logartmico

El algoritmo para mantener un rbol AVL equilibrado se


basa en reequilibrados locales, de modo que no es
necesario explorar todo el rbol despus de cada
insercin o borrado

Arboles AVL Factor de equilibrio

Cada nodo, adems del dato y de las referencias a su


subrbol izquierdo y derecho, tiene un nuevo atributo: el
factor de equilibrio
El factor de equilibrio es la diferencia entre las alturas
del subrbol derecho y el izquierdo:
FE = HDer HIzq

Por definicin, para un rbol AVL, este valor debe ser -1,
01

rboles AVL - reestructacin


-1
65

-1

45
0

70
-1

33

54

0
68

RSD
Simple

50

RSI
Rotacin
RDD
Compuesta
RDI

10

rboles AVL rotacin simple derecha (RSD)

Cuando el subrbol izquierdo de un nodo es 2 unidades


ms alto que el derecho (FE = -2) y la raz del subrbol
izquierdo tenga un FE = -1 (cargado a la izquierda)
P
Q

11

rboles AVL rotacin simple derecha (RSD)

Paso 1: el subrbol derecho de Q pasa a ser el subrbol


izquierdo de P

Paso 2: el rbol P pasa a ser el subrbol derecho de Q:

12

rboles AVL rotacin simple izquierda (RSI)

Es el caso simtrico del anterior. Esta rotacin se usa


cuando el subrbol derecho de un nodo es 2 unidades
ms alto que el izquierdo y la raz del subrbol derecho
est cargado a la derecha

13

rboles AVL rotacin doble derecha (RDD)

Cuando el subrbol izquierdo de un nodo es 2 unidades


ms alto que el derecho (FE = -2) y la raz del subrbol
izquierdo tenga un FE = 1 (cargado a la derecha)
P
Q

14

rboles AVL rotacin doble derecha (RDD)

Paso 1: el subrbol izquierdo de R pasa a ser el


subrbol derecho de Q

Paso 2: el rbol Q pasa a ser el subrbol izquierdo de R

15

rboles AVL rotacin doble derecha (RDD)

Paso 3: el subrbol derecho de R pasa a ser el subrbol


izquierdo de P

Paso 4: el rbol P pasa a ser el subrbol derecho de R

16

rboles AVL rotacin doble izquierda (RDI)

Es el caso simtrico del anterior. Esta rotacin se usa


cuando el subrbol derecho de un nodo es 2 unidades
ms alto que el izquierdo y la raz del subrbol derecho
est cargado a la izquierda

17

Arboles 2-3

Los rboles 2-3 son rboles cuyos nodos internos


pueden contener hasta 2 elementos.
Por lo tanto un nodo interno puede tener 2 o 3 hijos,
dependiendo de cuntos elementos posea el nodo.

18

Arboles 2-3

Todas las hojas estn a la misma profundidad, es decir, son


rboles perfectamente balanceados.

Se sigue cumpliendo la propiedad de los rboles binarios:


nodos internos + 1 = nodos externos.

Dado que el rbol 2-3 es perfectamente balanceado, la altura de


ste esta acotada por:

19

Arboles 2-3 insercin de X

Se realiza una bsqueda infructuosa de X y se inserta


dicho elemento en el ltimo nodo visitado durante la
bsqueda:
Si el nodo donde se inserta X tena una sola llave (dos
hijos):

20

Arboles 2-3 insercin de X


Si el nodo donde se inserta X tena dos llaves (tres hijos),
overflow:

Ejercicio 1: insertar la secuencia: 1,2,3,4,5,6,7,8

21

Arboles 2-3 eliminacin de Z

Si Z no es hoja, se reemplaza por el sucesor o


antecesor, y se eliminar ste ltimo.
El nodo donde se encuentra Z contiene dos elementos.

22

Arboles 2-3 eliminacin de Z


El nodo donde se encuentra Z contiene un solo elemento
(underflow):

23

Arboles 2-3 eliminacin de Z


Si el nodo hermano contiene solo una llave

Cul es el costo de las operaciones de bsqueda,


insercin y eliminacin en el peor caso? .

Ejercicio 2: eliminar 5 y 2 del rbol del ejercicio 1.

24

rboles B

rboles B (Bayer y Mc Creight) son rboles


balanceados, diseados para trabajar con dispositivos
de almacenamiento secundario (discos magnticos)
Permiten optimizar las operaciones de E/S.

Se dice que es de orden n, si cada nodo tiene


mximo n hijos y n-1 llaves.
Es un rbol ordenado (generalizacin de un BST)

25

rboles B estructura de los nodos

En implementaciones reales, la clave tiene un registro.

26

rboles B - Propiedades

Mnimo de hijos en un nodo (grado mnimo) : t=n / 2


2
Todo nodo diferente de la raz debe poseer por lo menos t1 claves.
Todo nodo interno diferente de la raz debe poseer por lo
menos t hijos.

Si la raz no es vaca, entonces la raz debe tener por lo


menos una llave.
Mximo de hijos: un nodo interno puede tener como
mximo n hijos y n-1 llaves (nodo lleno).

27

rboles B - bsqueda
A

96
100

C
105 122

40 55 82

8 17 36

46 53

R8 R17 R36

R46 R53

F
56 65 72 81

R56 R65 R72 R81

G
83 96 98

R83 R96 R98

H
102 104

R102 R104

I
107 112 119

R107 R112 R119

J
125 127

R125 R127

28

rboles B - bsqueda
A

96
100

C
105 122

40 55 82

8 17 36

46 53

R8 R17 R36

R46 R53

F
56 65 72 81

R56 R65 R72 R81

G
83 96 98

R83 R96
96 R98

H
102 104

R102 R104

I
107 112 119

R107 R112 R119

J
125 127

R125 R127

29

rboles B - bsqueda
A

105

100

C
105 122

40 55 82

8 17 36

46 53

R8 R17 R36

R46 R53

F
56 65 72 81

R56 R65 R72 R81

G
83 96 98

R83 R96 R98

H
102 104

R102 R104

I
107 112 119

R107 R112 R119

J
125 127

R125 R127

30

rboles B insercin de X

Realizar una bsqueda infructuosa, que nos llevar al


nodo donde ser insertado X.
Si este nodo an tiene espacio, se inserta X en el lugar que
le corresponda dentro del nodo.
Si el nodo est lleno, ser necesario realizar una divisin:
Se divide el nodo (pgina) y se distribuyen las claves.
La clave intermedia es promovida al nodo padre.
Si el padre est lleno, se repite el proceso nuevamente.

El peor caso tendr lugar cuando se crea una nueva raz


(se propaga la divisin).
La altura del rbol aumenta.

31

Ejemplo de insercin

Insertar en un rbol B de orden 5 inicialmente vaco la


secuencia de claves: 15, 4, 3, 7, 35

32

rboles B - eliminacin

Al borrar una clave puede ocurrir que:


La clave est en una pgina hoja desplazar a la
izquierda el resto de las claves de la pgina
P.e.: borrar 45 en el ejemplo anterior

33

rboles B - eliminacin
La clave no est en una pgina hoja, hacer lo mismo que
en un BST:
sustituir la clave por el mayor elemento de la pgina del lado
izquierdo, o
sustituir la clave por el menor elemento de la pgina del lado
derecho

34

rboles B - eliminacin

Subocupacin de una pgina/nodo (underflow):


Si esa pgina no es la raz, habr que reorganizar el rbol.
Dos posibilidades:
Equilibrado: (Redistribucin)

Fusin de pginas: (Concatenacin)


Su propagacin hasta la raz, reduce la altura del rbol.

35

rbol B*

Perfeccionamiento de la utilizacin de memoria de un


rbol B.
Retraza la divisin de un nodo cuando ocurre desborde.
Extiende la idea de redistribucin durante la insercin en
vez de la divisin.

Divide de dos a tres en lugar de uno a dos, en algunas


estrategias se excepta la raz.

36

rbol B*

Produce pginas que se llenan hasta las dos terceras


partes, en vez de slo la mitad.
Garantiza una utilizacin de memoria mnima de casi
66.67%.

Requiere de accesos adicionales muy costosos en


inserciones con desborde.
Algunas veces, la fusin tambin varia:
De tres pginas, se fusionan en dos.

37

B* - Propiedades

P.e.: para un rbol de orden n=512, se tendra:


indicador

Arbol B

Arbol B*

Mximo

Descendientes : n= 512
Claves = 511

Descendientes : n= 512
Claves = 511

Mnimo

Descendientes : n/2= 256 Descendientes : 2n/3 =341


Claves = 255
Claves = 340

Para un rbol B* de orden 29, cules son los mnimos


y mximo de claves?

38

B* - Insercin

Insertar la clave en la pgina correspondiente


Si la pgina tiene an espacio, el proceso concluye.
Sino, se puede:
Redistribuir
Dividir
Dos - tres
Raiz: uno - dos, uno - tres

39

B* - Insercin

Insercin con redistribucin: dejar la mitad a cada lado

40

B* - Insercin

P.e.: Insercin con redistribucin

41

B* - Insercin

Insercin con divisin: cada pgina recibir (2N/3)-1


claves y se promocionan dos claves a la pgina superior

42

B* - Insercin

P.e.: insercin con divisin

= 2(n-1)/3 = 8/3= 2

= 4(n-1)/3 +1 = 16/3 +1 = 6
Mnimo claves = (2n/3) -1 = 2

43

B* - Insercin en la Raz

Si se considera divisin de uno a dos:


Es factible que las pginas hijas de la Raz puedan quedar
con menos claves del mnimo.
Por ejemplo, para un rbol de orden 8:
8

13 17 20

21 24

30

19

Mnimo claves = (2n/3) -1 = 4

Divisin 1-2

20

13 17 19

21 24

30

44

B* - Insercin en la Raz

Se considera divisin de uno a tres:


Aumentar la capacidad de la Raz, de forma que resulten
tres nodos.
En cunto? ( mnimo de claves * 3 + 2 )
Por ejemplo, para un rbol de orden 8:
19

Mnimo claves = 4
Cap. Raz = 4*3+2=
19 14

13 17

20

21 24 30

32 35 36

41 44

47

53

= 2(n-1)/3 = 4
= 4(n-1)/3 +1 = 10

20 36

Divisin 1-3
8

13 17

19

35

41

44

47 53

45

B* - Eliminacin

Similar al procedimiento de eliminacin de un rbol B:


Si es necesario se redistribuye,
Sino, fusionar de 3 a 2
20 35

13 17

21 24 30

19

36

32

41

44 47

30

Eliminar(24)

13 17

19

20 21

32 35 36

41

44 47

46

rbol B+

Es una mejora sobre los rboles B.


Con las misma propiedades que el rbol B, pero est
formado por:
ndice: constituido por los nodos intermedios.
Forman un rbol B
Secuencia: pginas hojas enlazadas secuencialmente en
las que se repiten algunas de las claves intermedias.

Las operaciones por clave empiezan en la raz del rbol.


El proceso secuencial empieza en la hoja ms a la
izquierda

47

B+ - Estructura
ndice: un
rbol-B

Bsqueda
aleatoria

Bsqueda
secuencial

....
Claves: el conjunto
secuencial

48

B+ - Estructura

Los nodos ndices y nodos hoja pueden tener diferentes


formatos y tamaos.

X<K1

Ki -1 X< Ki

Kq -1 X

49

rbol B+

P.e.:

98

C
107 119

36 53 81

D
8 17 36

R8 R17 R36

E
46 53

R46 R53

56 65 72 81

83 96 98

102 107

R56 R65 R72 R81

R83 R96 R98

R102 R107

109 112 119

125 127

R109 R112 R119

R125 R127

50

Eficiencia del rbol B+

Retiene la eficiencia de la bsqueda e insercin del


rbol-B
Incrementa la eficiencia del hallazgo del registro
siguiente en el rbol de O(log n) a O(1).
Ventaja: no necesita guardar apuntador a registros en
los nodos no-hojas.

51

B+ - Bsqueda

Igual que en el rbol B, con la diferencia que no se debe


detener cuando se encuentre la clave en la pgina raz o
en una pgina intermedia.
Proseguir en la pgina apuntada por la rama
izquierda/derecha de dicha clave.
Si la clave existe, se encontrar en pgina hoja.
Sino, slo existe en el ndice del rbol

52

B+ - Bsqueda
A

96
96

C
107 119

36 53 81

D
8 17 36

R8 R17 R36

E
46 53

R46 R53

56 65 72 81

83 96 98

102 107

R56 R65 R72 R81

R83 R96 R98

R102 R107

109 112 119

125 127

R109 R112 R119

R125 R127

53

B+ - Bsqueda
A

96
96

C
107 119

36 53 81

D
8 17 36

R8 R17 R36

E
46 53

R46 R53

56 65 72 81

83 96 98

102 107

R56 R65 R72 R81

R83 RR9696 R98

R102 R107

109 112 119

125 127

R109 R112 R119

R125 R127

54

B+ - Bsqueda
A

107

96

C
107 122

36 53 81

D
8 17 36

R8 R17 R36

E
46 53

R46 R53

56 65 72 81

83 96 98

R56 R65 R72 R81

R83 R96 R98

H
102 107

R107
R102 R
107

109 112 119

125 127

R109 R112 R119

R125 R127

55

B+ - Insercin

Similar al proceso de insercin en un rbol B, pero .


Si la pgina donde se inserta an tiene espacio, se inserta
y el proceso termina.
Pero, si se inserta una clave en una pgina hoja que esta
llena:
Esta se divide de 1 a 2
Asciende la copia de la clave central, el original se queda en la
hoja, apuntando a su registro.
La pgina actual contendr n/2+1 (n/2)
La pgina nueva contendr n/2 (n/2+1)

56

B+ - Insercin

En el B+ de orden 5, insertar el 97 (insercin sin


divisin)
81

36

98

53

104

97

8 17 36

R8 R17 R36

46

53

R46 R53

56 65 72 81

R56RR
R7065 RR
R7272 R
R81
56
65
81

96

R96

98

R98

102 104

R102 R104

125 127

R125 R127

57

B+ - Insercin

En el B+ de orden 5, insertar el 97 (insercin sin


divisin)
81

36

8 17 36

R8 R17 R36

46

98

53

53

R46 R53

104

56 65 72 81

96 97 98

102 104

R56RR
R7065 RR
R7272 R
R81
56
65
81

R96 R97 R98

R102 R104

125 127

R125 R127

58

B+ - Insercin

En el B+ de orden 5, insertar el 70 (insercin con


divisin)
81

36

98

53

104

70

8 17 36

R8 R17 R36

46

53

R46 R53

56 65 72 81

96 97 98

102 104

R56RR
R7065 RR
R7272 R
R81
56
65
81

R96 R97 R98

R102 R104

125 127

R125 R127

59

B+ - Insercin

En el B+ de orden 5, insertar el 70 (insercin con


divisin)
81
70

36

8 17 36

R8 R17 R36

46

53

53

R46 R53

56 65 70

R56 R65 R70

72

81

96 97 98

R72

R81

R96 R97 R98

98

104

102

104

R102 R104

125 127

R125 R127

60

B+ - Insercin

En el B+ de orden 5, insertar el 70 (insercin con


divisin)
81

36

8 17 36

R8 R17 R36

46

53

R46 R53

53

70

56 65 70

R56 R65 R70

72

81

96 97 98

R72

R81

R96 R97 R98

98

104

102

104

R102 R104

125 127

R125 R127

61

B+ - Eliminacin

Indice: (niveles intermedios y raz) similar al proceso de


eliminacin de un rbol B.
Secuencia: (Nivel hoja), si la clave que se est
eliminando tiene una copia en el ndice, slo se elimina
la de pgina hoja:
Si al eliminar la clave el nmero de claves es mayor o igual
al mnimo de claves, el proceso finaliza.
Si hay subocupacin, se procede a realizar equilibrado y
fusin
A consecuencia de estas operaciones, las claves copias del
ndice se eliminan.

62

B+ - Eliminacin

P.e.: en un rbol B+ de orden 5:


81

Eliminar(17)

36

8 17 36

R8 R17 R36

46

53

R46 R53

53

70

56 65 70

R56 R65 R70

72

81

96 97 98

R72

R81

R96 R97 R98

98

104

102

104

R102 R104

125 127

R125 R127

63

B+ - Eliminacin

P.e.: en un rbol B+ de orden 5:


81

36

36

R8 R17 R36

46

53

R46 R53

53

70

56 65 70

R56 R65 R70

72

81

96 97 98

R72

R81

R96 R97 R98

98

104

102

104

R102 R104

125 127

R125 R127

64

B+ - Eliminacin

P.e.: en un rbol B+ de orden 5:


81

Eliminar(98)

36

36

R8 R17 R36

46

53

R46 R53

53

70

56 65 70

R56 R65 R70

72

81

96 97 98

R72

R81

R96 R97 R98

98

104

102

104

R102 R104

125 127

R125 R127

65

B+ - Eliminacin

P.e.: en un rbol B+ de orden 5:


81

36

36

R8 R17 R36

46

53

R46 R53

53

70

56 65 70

R56 R65 R70

72

81

96

R72

R81

R96

97

R97

98

104

102

104

R102 R104

125 127

R125 R127

66

B+ - Eliminacin

P.e.: en un rbol B+ de orden 5:


81

Eliminar(53)

36

36

R8 R17 R36

46

53

R46 R53

53

70

56 65 70

R56 R65 R70

72

81

96

R72

R81

R96

97

R97

98

104

102

104

R102 R104

125 127

R125 R127

67

B+ - Eliminacin

P.e.: en un rbol B+ de orden 5:


81

Eliminar(53)

Equilibrado
36

36

R8 R17 R36

46

R46

53

70

56 65 70

R56 R65 R70

72

81

96

R72

R81

R96

97

R97

98

104

102

104

R102 R104

125 127

R125 R127

68

B+ - Eliminacin

P.e.: en un rbol B+ de orden 5:


81

Eliminar(53)

Equilibrado
36

53

70

98

104

102

104

Copia
(56)

36

R8 R17 R36

46

56

R46 R56

65

R65

70

R70

72

81

96

R72

R81

R96

97

R97

R102 R104

125 127

R125 R127

69

B+ - Eliminacin

P.e.: en un rbol B+ de orden 5:


81

36

36

R8 R17 R36

46

56

R46 R56

56

70

65

R65

70

R70

72

81

96

R72

R81

R96

97

R97

98

104

102

104

R102 R104

125 127

R125 R127

70

B+ - Eliminacin

P.e.: en un rbol B+ de orden 5:


81

Eliminar(104)

36

36

R8 R17 R36

46

56

R46 R56

56

70

65

R65

70

R70

72

81

96

R72

R81

R96

97

R97

98

104

102

104

R102 R104

125 127

R125 R127

71

B+ - Eliminacin

P.e.: en un rbol B+ de orden 5:


81

Es copia

Eliminar(104)

Fusin
36

36

R8 R17 R36

46

56

R46 R56

56

98

70

65

R65

70

R70

72

81

96

R72

R81

R96

97

R97

102

R102

104

125 127

R125 R127

72

B+ - Eliminacin

P.e.: en un rbol B+ de orden 5:


81

Descenso(93)

Redistribucin
36

36

R8 R17 R36

46

56

R46 R56

56

104

70

65

R65

70

R70

72

81

R72

R81

96 97 102

R96

R97 R102

125 127

R125 R127

73

B+ - Eliminacin

P.e.: en un rbol B+ de orden 5:


70

36

R8

36

R36

46

81

56

56

R46 R56

65

R65

70

R70

72

81

R72

R81

104

96 97 102

R96

R97 R102

125 127

R125 R127

You might also like