Escolar Documentos
Profissional Documentos
Cultura Documentos
Arboles Binarios
Arbol binario: rbol ordenado de grado 2, que puede estar vaco o puede estar formado por un nodo raz del que cuelgan dos subrboles binarios disjuntos, denominados subrbol izquierdo y subrbol derecho.
raiz
A izq
A der
Arboles Binarios
Un rbol binario se dice relleno si todos sus nodos o bien tienen dos hijos o bien son hojas, es decir, si no contiene nodos con un solo hijo. El nmero de hojas en un rbol binario relleno es siempre igual al nmero de nodos internos ms uno.
34
31
90
Algoritmos y Estructuras de Datos Departamento de Electricidad y Electr onica (UPV/EHU)
15
Arboles Binarios de Busqueda p.3/52
Arboles Binarios
Un rbol binario de altura h se dice completo si todos sus nodos interiores tienen dos hijos no vacos y todas sus hojas estn en el nivel h. El nmero de nodos de un rbol binario completo de altura h es igual a 2h+1 1. Como todo rbol binario completo es tambin relleno, 2h de esos nodos son hojas y 2h 1 son nodos internos.
34
31
50
Algoritmos y Estructuras de Datos
22
90
15
Arboles Binarios de Busqueda p.4/52
Arboles Binarios
Un rbol binario de altura h se dice semicompleto si los nodos de los niveles h y h-1 son los nicos de grado inferior a 2 y las hojas del ltimo nivel ocupan las posiciones ms a la izquierda del mismo.
34
31
50
22
90
15
7
Algoritmos y Estructuras de Datos
64
Departamento de Electricidad y Electr onica (UPV/EHU) Arboles Binarios de Busqueda p.5/52
Arboles de Bsqueda
La aplicacin ms importante de los rboles es organizar la informacin de manera jerrquica para acelerar los procesos de bsqueda, insercin y borrado. Normalmente, la clave de bsqueda se extrae de la propia informacin, directamente o mediante transformaciones adecuadas. Para clasicar la informacin sin ambigedad, es necesario establecer entre las claves de bsqueda un conjunto de condiciones mutuamente excluyentes, tal que una y slo una de ellas sea cierta.
Arboles de Bsqueda
Por ejemplo, dada una clave entera k, cualquier otra clave m podra clasicarse de acuerdo a las siguientes condiciones: 1. m k/2 2. k/2 < m < 2k 3. m 2k
44
16
48
234
17
90
167
712
Arboles de Bsqueda
Un rbol de bsqueda se dene como un rbol en el que, para cada nodo, las claves de los subrboles hijos satisfacen una y slo una condicin de un conjunto de n condiciones mutuamente excluyentes. Si n = 2, se tendr un rbol de bsqueda binario ; si n = 3, se tendr un rbol de bsqueda ternario ; etc. As pues, un rbol binario de bsqueda (ABB) es un rbol binario en el que para cada nodo se denen dos condiciones mutuamente excluyentes, de forma que las claves de los nodos del subrbol izquierdo cumplen una de ellas, y las del subrbol derecho la otra. Habitualmente estas condiciones determinan una relacin de orden, de manera que el recorrido en orden simtrico del rbol produce una secuencia ordenada de nodos.
Algoritmos y Estructuras de Datos Departamento de Electricidad y Electr onica (UPV/EHU) Arboles Binarios de Busqueda p.8/52
Arboles de Bsqueda
Un cierto conjunto de datos puede representarse mediante distintos ABB. El recorrido simtrico de estos ABB producir la misma secuencia de nodos. Sin embargo, tendrn diferentes alturas y por tanto el coste promedio de bsqueda ser distinto. Suponiendo datos equiprobables, sern ptimos aquellos ABB cuya altura sea mnima. De ah el inters de los ABB equilibrados. Vanse los ABB de la pgina siguiente: ambos representan el mismo conjunto de datos; en el primer caso se trata de un ABB semicompleto de altura 2 (mnima), y en el segundo de un ABB completamente degenerado de altura 4 (mxima), equivalente a una lista ligada.
Algoritmos y Estructuras de Datos Departamento de Electricidad y Electr onica (UPV/EHU) Arboles Binarios de Busqueda p.9/52
Arboles de Bsqueda
ABB ptimo
15
15
22
7
10
10
15 t 7 22
15 t 7 22
insertar(t,8)
3 8
10
10
15 t 7 22 7
15 t 22
eliminar(t,17)
3 10 17 35
10
35
eliminar(t,10)
10
17
35
17
35
eliminar(t,15)
10
17
35
17
35
8
Algoritmos y Estructuras de Datos Departamento de Electricidad y Electr onica (UPV/EHU) Arboles Binarios de Busqueda p.12/52
eliminar(t,15)
3 10 17 35
10
35
8
Algoritmos y Estructuras de Datos Departamento de Electricidad y Electr onica (UPV/EHU)
8
Arboles Binarios de Busqueda p.12/52
10
35
ABB Equilibrados
Se dice que un ABB con n nodos es equilibrado si su altura es prxima (es decir, igual o ligeramente superior) a log(n). Los ABB equilibrados proporcionan tiempos de bsqueda en (log n). Las tcnicas para conseguir ABB equilibrados se basan en reasignar nodos o subrboles dentro del ABB tras una operacin de insercin o borrado que ha producido un desequilibrio en la estructura. Estas reasignaciones (conocidas como rotaciones) preservan la propiedad fundamental de los ABB (ver pgina siguiente). Atendiendo al criterio de equilibrio, se distinguen varios tipos de ABB equilibrados: rboles 2-3, rboles rojo-negro, rboles AVL, etc.
T3
rotar_derecha (p)
T1
T1
T2
rotar_izquierda (v)
T2
T3
Arboles AVL
Un Arbol AVL (G.M. Adelson-Velskii y E.M. Landis, 1962) es un ABB en el que las alturas de los subrboles izquierdo y derecho de cualquier nodo dieren a lo sumo en 1. Esta restriccin se conoce como propiedad de los rboles AVL. La altura de un rbol AVL con n nodos est en (log n) (vase Heileman, pp. 194-195). Los rboles AVL se representan igual que un ABB, slo que aadiendo a cada nodo un campo adicional que indica su grado de equilibrio. Este valor se calcula como la diferencia entre las alturas de los subrboles derecho e izquierdo, que puede ser +1, 0 o -1 (vase el ejemplo siguiente).
Algoritmos y Estructuras de Datos Departamento de Electricidad y Electr onica (UPV/EHU) Arboles Binarios de Busqueda p.34/52
Arboles AVL
Ejemplo de rbol AVL con el grado de equilibrio de cada nodo
+1 0
17
7
0 0 +1
22
0
10
19
0
35 20
Arboles AVL
En un rbol AVL se emplean los mismos procedimientos de consulta denidos genricamante para un ABB. Adems, como la altura de un rbol AVL de n nodos est en (log n), se tiene la seguridad de que esas operaciones tendrn en el peor caso un coste logartmico. Sin embargo, las operaciones insertar () y eliminar () podran modicar el equilibrio de los nodos ms all del rango [-1,1] permitido. As sucede en el ejemplo anterior si se aade el valor 21 o si se elimina el valor 35. Ser necesario, por tanto, aadir el cdigo necesario para que estas operaciones mantengan la propiedad de los rboles AVL.
Algoritmos y Estructuras de Datos Departamento de Electricidad y Electr onica (UPV/EHU) Arboles Binarios de Busqueda p.36/52
T0 (a)
0 h
+2
T0 (b)
+1
p
h
T1
T1
T2
T3
T2
T3
h+1
T0
(c)
0
T3
h+1
T1
T2
T0 (b)
h 1
p
h
T3
T3
T1
T2
h h+1
T1
T2
T0
v
0 h+1
(c)
T1
T2
T3
T0 (a)
0
p
h
+2
T0 (b)
1
T1
0
v w T3
T1
+1
v w T3
h1
T2.1
T2.2
h1
h1
T2.1
T2.2
+2
T0 (c)
+2 1 0 0
p
h
T0 (d)
0
T1
v
h1
T2.1 T2.2
h
h h
h1
T1
T2.1
T2.2
T3
T3
p
h
T0 (b)
+1
p
h
v w T1
h1
T3
0
v w T1
h
T3
1
T2.1
T2.2
h1
T2.1
T2.2
h1
T0
2
(c)
2 0
p
h
(d)
0
T0
+1
T3
v
T2.2
h h1 h h1
T1
T2.1
T2.2
T3
T1
T2.1
34
+1 +1
0 +1
4
0
64
+1
64
+1
34
0 +1 +1 0
90
+1
15
0
50
0 0
90 54 77 96
0
15
0 0
50
0
77 54 (b)
96
0
22 (a)
22
99
99
64
64
+1
34
0 +1 0
90
+1 1
34
+1 0
90
+1
15
0 0
50
0
77 54
96
0 0
15 99 4
50
0
77 54
96
0
22
(a)
(b)
99
64 (a)
64 (b)
+1
34
0
90
1 +1
34
0
90
0 +1
50
0
77
96
0
50 99
77
96
0
69
+2 0
99
50
0 +1
90 (d)
+1 0 +1
34
0
90 77 96
0
50
0 0
96
0
(c)
34
77
99
Arboles Binarios de Busqueda p.47/52
99
Algoritmos y Estructuras de Datos Departamento de Electricidad y Electr onica (UPV/EHU)