Anda di halaman 1dari 10

Estructuras de Datos y Algoritmos

A no 2005

Arboles Binarios Ordenados


Introducci on
Para lo que sigue consideraremos que un arbol binario ordenado con valores en un conjunto 1 (A /
V
)
se dene recursivamente como:
1. /
V
2. Si (A
1
/
V
y A
2
/
V
y v 1) entonces A = A
1
, v, A
2
) /
V
El calicativo de binarios en estos arboles es debido a que un arbol se dene en general como un valor
y dos sub arboles, y el de ordenados es porque esos dos sub arboles tienen una posici on determinada en el
arbol, lo cual se muestra en la siguiente gr aca:
v
A
A
1
2
Se obtendra por lo tanto un arbol distinto si A
1
apareciera a la derecha y A
2
a la izquierda.
En adelante hablaremos por simplicidad de arboles binarios al referirnos a arboles binarios ordenados.
Denimos recursivamente la altura h de un arbol binario del siguiente modo:
1. h() = 0
2. h(A
1
, v, A
2
)) = m axh(A
1
), h(A
2
) + 1
Relaci on entre nodos internos y externos en un arbol binario
La siguiente gura muestra un arbol binario en el que se distinguen los nodos externos (que reemplazan
los punteros a nil) y los nodos internos:
Estructuras de Datos y Algoritmos:

Arboles Binarios Ordenados 1
Universidad Nacional de San Luis
Nodos internos
Nodos externos
Sean las siguientes deniciones recursivas de cantidad de nodos externos de un arbol A (e(A)) y de
cantidad de nodos internos de un arbol A (i(A)):
Denimos e de la siguiente manera:
1. e() = 1
2. e(A
1
, v, A
2
)) = e(A
1
) +e(A
2
)
Denimos i de la siguiente manera:
1. i() = 0
2. i(A
1
, v, A
2
)) = i(A
1
) +i(A
2
) + 1
En un arbol binario A se cumple la siguiente relaci on entre cantidad de nodos externos y nodos internos:
e(A) = i(A) + 1
Demostraci on
La demostraci on se puede realizar por inducci on sobre el n umero de nodos internos del arbol.
Paso Base: Si el arbol es vaco entonces tenemos que:
e(A) = e() = i() + 1 = 0 + 1 = 1
Hip otesis de inducci on: asumimos que se cumple para todo arbol binario con cantidad de nodos internos
menor que n.
Estructuras de Datos y Algoritmos:

Arboles Binarios Ordenados 2
Universidad Nacional de San Luis
Probamos para cantidad de nodos internos igual a n: Sea A = A
1
, v, A
2
) con n nodos internos.
e(A) = e(A
1
) +e(A
2
) (1)
= i(A
1
) + 1 +i(A
2
) + 1 (2)
= i(A) + 1 (3)
en (1) aplicamos la denici on de e, en (2) hacemos uso de la hip otesis de inducci on, dado que la cantidad
de nodos internos de A
1
y de A
2
es menor que n; en (3) aplicamos la denici on de i, y llegamos nalmente
a demostrar lo que busc abamos (c.q.d).
2
Relaci on entre suma de longitudes de paso a nodos internos y externos
Sean las siguientes deniciones recursivas de suma de longitudes de paso a nodos externos de un arbol
A (E(A)) y de suma de longitudes de paso a nodos internos de un arbol A (I(A)):
Denimos E de la siguiente manera:
1. E() = 0
2. E(A
1
, v, A
2
)) = E(A
1
) +E(A
2
) +e(A)
Denimos I de la siguiente manera:
1. I() = 0
2. I(A
1
, v, A
2
)) = I(A
1
) +I(A
2
) +i(A
1
) +i(A
2
)
En un arbol binario Ase cumple la siguiente relaci on entre suma de longitudes de paso a nodos externos
y a nodos internos:
E(A) = I(A) + 2 i(A)
Demostraci on
La demostraci on se puede realizar tambi en por inducci on sobre el n umero de nodos internos del arbol.
Paso Base: Si el arbol es vaco entonces tenemos que:
E(A) = E()
= 0 (4)
I(A) + 2 i(A) = I() + 2 i()
= 0 + 2 0
= 0 (5)
de (4) y (5) vemos que se cumple la igualdad.
Estructuras de Datos y Algoritmos:

Arboles Binarios Ordenados 3
Universidad Nacional de San Luis
Hip otesis de inducci on: asumimos que se cumple para todo arbol cuya cantidad de nodos internos es menor
que n.
Probamos para cantidad de nodos internos igual a n: Sea A = A
1
, v, A
2
) con n nodos internos.
E(A) = E(A
1
) +E(A
2
) +e(A) (6)
= (I(A
1
) + 2 i(A
1
)) + (I(A
2
) + 2 i(A
2
)) +e(A) (7)
= (I(A
1
) + 2 i(A
1
)) + (I(A
2
) + 2 i(A
2
)) +e(A
1
) +e(A
2
) (8)
= (I(A
1
) + 2 i(A
1
)) + (I(A
2
) + 2 i(A
2
)) +i(A
1
) + 1 +i(A
2
) + 1 (9)
= (I(A
1
) +I(A
2
) +i(A
1
) +i(A
2
)) + 2 i(A
1
) + 2 i(A
2
) + 1 + 1 (10)
= I(A) + 2 (i(A
1
) +i(A
2
) + 1) (11)
= I(A) + 2 i(A) (12)
en (6) reemplazamos E(A) por su denici on, en (7) aplicamos la hip otesis de inducci on sobre E(A
1
) y
E(A
2
), dado que ambos sub arboles tienen menos que n nodos internos, en (8) aplicamos la denici on de
e(A), en (9) usamos la relaci on entre cantidad de nodos externos (e) e internos (i) sobre los sub arboles A
1
y
A
2
, luego en (10) asociamos para armar la denici on de I(A) y en (11) asociamos y sacamos factor com un
para obtener i(A). Finalmente en (12) obtenemos la igualdad buscada (c.q.d.).
2

Arbol Binario de B usqueda


Para denir el arbol binario de b usqueda sobre un conjunto de valores 1 (A /
V,
), es necesario,
adem as de contar con una relaci on de orden sobre 1 (), denir una relaci on de orden sobre arboles y
valores de 1 (_
1
). Denimos recursivamente un arbol binario de b usqueda del siguiente modo:
1. /
V,
2. Si (A
1
/
V,
y A
2
/
V,
y v 1 y A
1
_ v y v A
2
) entonces A = A
1
, v, A
2
) /
V,
En esta denici on si hubieran elementos iguales a v en el arbol A se deberan encontrar en el sub arbol
A
1
(lo mismo se puede tener por la recursividad en los sub arboles A
1
y A
2
). Una denici on alternativa
podra considerar que dichos elementos vayan al sub arbol A
2
haciendo:
1. /
V,
2. Si (A
1
/
V,
y A
2
/
V,
y v 1 y A
1
v y v _ A
2
) entonces A = A
1
, v, A
2
) /
V,
En nuestra materia hemos asumido que no admitimos elementos repetidos, pero el arbol binario de
b usqueda no tiene inconvenientes para tratar con ellos y su denici on lo evidencia (en la materia siguiente
estudiaremos c omo resolver la localizaci on en este caso).
1
La relaci on se dene entre arboles y valores de V, y dice que: si A v entonces todos los valores del arbol A son menores
o iguales que v (bajo la relaci on denida en V). Queda como ejercicio denir formalmente la relaci on .
Estructuras de Datos y Algoritmos:

Arboles Binarios Ordenados 4
Universidad Nacional de San Luis
Esfuerzos medios de localizaci on a posteriori
Vamos ahora a obtener los esfuerzos medios de localizaci on exitosa y localizaci on que fracasa a posteri-
ori sobre un arbol binario de b usqueda (A) y para ello haremos uso de las funciones denidas sobre arboles
binarios E e I.
Todos los nodos en el arbol son nodos internos y todos los punteros a nil son nodos externos. Una
localizaci on exitosa terminar a por lo tanto en un nodo interno del arbol y la localizaci on que fracasa en
un nodo externo. De aqu que la longitud de paso a un nodo interno m as uno nos d e el n umero de celdas
consultadas para una localizaci on exitosa y la longitud de paso a un nodo externo nos d e el n umero de celdas
consultadas para una localizaci on que fracasa.
Vamos a usar como funci on de costo la cantidad de celdas consultadas, trabajamos bajo hip otesis de
isoprobabilidad de consultar con exito cualquiera de los N elementos presentes y suponemos que los N +1
puntos de fracaso son tambi en isoprobables.
Denotaremos con C
N
al esfuerzo medio de exito en un arbol con N elementos
2
y con C

N
al esfuerzo
medio de fracaso.
Las siguientes f ormulas muestran cu anto valen dichos esfuerzos:
C
N
=
I(A) +N
N
=
I(A)
N
+ 1 =
I(A)
i(A)
+ 1 (13)
C

N
=
E(A)
N + 1
=
E(A)
e(A)
(14)
Esfuerzo medio de localizaci on exitosa a priori
Analizaremos el esfuerzo medio de localizaci on exitosa en un arbol binario de b usqueda en el cual se
han incorporado los elementos de acuerdo a un orden aleatorio.
Asumiremos que las N! posibles secuencias de entrada son igualmente probables para construir el
arbol (o lo que es lo mismo, suponer que la entrada es aleatoria) y que todos los elementos son igualmente
probables de ser buscados con exito, y tomaremos como funci on de costo cantidad de celdas consultadas.
Por simplicidad denotaremos con I
N
a la suma de las longitudes de paso a nodos internos y E
N
la suma
de las longitudes de paso a nodos externos (si el arbol tiene N nodos internos). As podemos reescribir la
f ormula que relacionaba a las funciones i, I y E, para un arbol A con N nodos internos, como:
E
N
= I
N
+ 2 N (15)
y a las f ormulas de los esfuerzos medios de localizaci on exitosa y localizaci on que fracasa como:
C
N
=
I
N
N
+ 1 (16)
2
Usamos N en lugar de i(A) para hacer explcita la cantidad de elementos del arbol y para mayor claridad.
Estructuras de Datos y Algoritmos:

Arboles Binarios Ordenados 5
Universidad Nacional de San Luis
C

N
=
E
N
N + 1
(17)
Para deducir el esfuerzo de localizaci on exitosa a priori usaremos el hecho que los arboles binarios de
b usqueda no reestructuran los elementos luego de una alta, entonces podemos relacionar los esfuerzos de
localizaci on exitosa, alta y localizaci on que fracasa. Esto es porque la cantidad de celdas consultadas para
localizar exitosamente un elemento del arbol es exactamente uno m as que la necesaria para la localizaci on
que fracas o, indicando que dicho elemento no estaba en el arbol
3
.
Por lo tanto, podemos decir que el costo a priori de localizaci on exitosa para el primer elemento incor-
porado es uno m as que el esfuerzo medio de localizaci on que fracasa en un arbol con 0 elementos presentes;
que el costo a priori de localizar el segundo elemento incorporado es uno m as que el esfuerzo medio de lo-
calizaci on que fracasa con 1 elemento presente y as sucesivamente. Entonces, y dado que trabajamos bajo
hip otesis de isoprobabilidad de consultar cualquiera de los N elementos, podemos decir que:
C
N
= 1 +
C

0
+C

1
+C

2
+ +C

N1
N
= 1 +
N1

i=0
C

i
N
(18)
Adem as sabamos que:
I
N
= E
N
2 N (19)
al despejar de (15) I
N
, y usando (16), podemos escribir:
C
N
=
I
N
N
+ 1
=
E
N
2 N
N
+ 1
=
E
N
N
2 + 1
=
E
N
N
1 (20)
3
En lo que sigue asumiremos que no se realizan bajas en el arbol, porque sino no podemos asegurar que se mantenga la relaci on
existente entre esfuerzos de localizaci on exitosa, altas y localizaci on que fracasa.
Estructuras de Datos y Algoritmos:

Arboles Binarios Ordenados 6
Universidad Nacional de San Luis
pero en (20) podemos usar (17) para conseguir:
C
N
=
E
N
N

N + 1
N + 1
1
= C

N

N + 1
N
1
= C

1 +
1
N

1 (21)
y juntando (18) y (21) logramos:
C

1 +
1
N

1 = 1 +
N1

i=0
C

i
N
(22)
N

1 +
1
N

N
N = N +
N1

i=0
C

i
(23)
(N + 1) C

N
2 N =
N1

i=0
C

i
(24)
(N + 1) C

N
=
N1

i=0
C

i
+ 2 N (25)
desde (22) sacamos com un denominador a N (en la parte derecha de la igualdad) y luego pasamos N
multiplicando al otro miembro, desde (23) distribuimos el producto por N y luego pasamos el t ermino N
del lado derecho al lado izquierdo restando y asociamos los N y desde (24) pasamos el t ermino 2 N al lado
izquierdo sumando para llegar a (25). Finalmente logramos una f ormula recursiva de C

N
.
Para resolver la recurrencia planteada, reemplazamos N por N 1 en (25):
N C

N1
=
N2

i=0
C

i
+ 2 (N 1) (26)
=
N2

i=0
C

i
+ 2 N 2 (27)
Estructuras de Datos y Algoritmos:

Arboles Binarios Ordenados 7
Universidad Nacional de San Luis
ahora sustrayendo (27) a (25), miembro a miembro, obtenemos:
(N + 1) C

N
N C

N1
=
N1

i=0
C

i
+ 2 N
N2

i=0
C

i
2 N + 2 (28)
(N + 1) C

N
N C

N1
= C

N1
+ 2 (29)
(N + 1) C

N
= (N + 1) C

N1
+ 2 (30)
C

N
= C

N1
+
2
(N + 1)
(31)
desde (28) simplicamos lo m as posible la f ormula, desde (29) agrupamos a la derecha los t erminos en que
aparece C

N1
, los asociamos y sacamos a C

N1
como factor com un, desde (30) pasamos multiplicando
al otro t ermino a (N + 1) para despejar nalmente a C

N
, y obtenemos as la f ormula (31) que dene
recursivamente a C

N
.
Ahora, dado que C

0
= 0, podemos intentar resolver la recurrencia sustituyendo C

N1
por su denici on,
luego C

N2
por su denici on, y as sucesivamente hasta llegar a C

0
:
C

N
= C

N1
+
2
(N + 1)
= C

N2
+
2
N
+
2
(N + 1)
= C

N3
+
2
(N 1)
+
2
N
+
2
(N + 1)
.
.
.
= C

0
+
2
2
+
2
3
+ +
2
(N 1)
+
2
N
+
2
(N + 1)
reescribiendo la f ormula tenemos:
C

N
= C

0
+ 2
N+1

i=2
1
i
(32)
= C

0
+ 2

N+1

i=1
1
i

(33)
= C

0
+ 2 H
N+1
2 (34)
= 2 H
N+1
2 (35)
Estructuras de Datos y Algoritmos:

Arboles Binarios Ordenados 8
Universidad Nacional de San Luis
en (32) sacamos factor com un 2 y abreviamos las sumas en una sumatoria, en (33) sumamos y restamos 1
en el lado derecho de la igualdad y cambiamos as el lmite inferior de la sumatoria a 1, en (34) como la
sumatoria corresponde al n umero arm onico N + 1, la reemplazamos por su nombre (H
N+1
) y nalmente
reemplazamos C

0
por su valor.
Ahora podemos reemplazar C

N
en la f ormula (21) obteniendo:
C
N
= (2 H
N+1
2)

1 +
1
N

1 (36)
=

2 H
N
+
2
(N + 1)
2

(N + 1)
N
1 (37)
= 2 H
N

(N + 1)
N
+
2
(N + 1)

(N + 1)
N
2
(N + 1)
N
1 (38)
= 2 H
N

1 +
1
N

+
2
N
2

1 +
1
N

1 (39)
= 2 H
N

1 +
1
N

+
2
N
2
2
N
1 (40)
= 2 H
N

1 +
1
N

2 1 (41)
= 2 H
N

1 +
1
N

3 (42)
2 ln N

1 +
1
N

3 (43)
Finalmente llegamos a una f ormula para el esfuerzo medio de localizaci on exitosa a priori (como sub-
producto tambi en obtuvimos el esfuerzo medio de localizaci on que fracasa a priori).
Se puede observar que la f ormula (42) obtenida en este desarrollo es la misma que aquella que se puede
obtener utilizando tanto el desarrollo algebraico puro, como el obtenido utilizando un desarrollo mixto
(algebraico junto con funciones generatrices)
4
.
La f ormula (43) que aproxima a C
N
evidencia que el esfuerzo medio de localizaci on exitosa a priori en
un arbol binario de b usqueda
5
, es O(log N).
4
Ver la f ormula (42) del apunte sobre esfuerzo medio de localizaci on exitosa en arbol binario de b usqueda.
5
Observar que el esfuerzo m aximo para el mejor arbol posible es log N.
Estructuras de Datos y Algoritmos:

Arboles Binarios Ordenados 9
Universidad Nacional de San Luis

Arboles Binarios de B usqueda Balanceados en Altura (

Arboles AVL)
Se dene un arbol binario de b usqueda balanceado en altura o arbol AVL (A /B
V,
)
6
recursiva-
mente de la siguiente manera:
1. /B
V,
2. Si (A
1
/B
V,
y A
2
/B
V,
y v 1 y A
1
v y v A
2
y [ h(A
1
) h(A
2
) [ 1) entonces
A = A
1
, v, A
2
) /B
V,
Notar que en la denici on la relaci on de orden entre arboles y valores de 1 excluye la igualdad; por lo
tanto, a diferencia del arbol binario de b usqueda, el arbol AVL no admite elementos repetidos. La raz on de
ello es que si se admitieran valores iguales, por alguna de las ramas, al realizar una operaci on para mantener
el balance se puede perder la condici on de ser un arbol binario de b usqueda (Ejercicio: mostrar un ejemplo
en que esto ocurra).
Claramente los arboles AVL al mantener el balance en altura logran principalmente un mejor esfuerzo
m aximo de localizaci on respecto del arbol binario de b usqueda, y por ello tambi en mejoran el esfuerzo
medio; pero esto se consigue a costa de que las operaciones de alta y baja sean m as costosas.
En estos arboles no es posible relacionar los esfuerzos de localizaci on exitosa, alta y localizaci on que
fracasa, a un bajo la hip otesis de que no existan bajas, debido a que para mantener el balance de las alturas
se reestructura el arbol, y por ello un elemento no ocupa siempre la posici on en que se dio de alta.
Reconocimientos
El presente apunte se realiz o tomando como base apuntes de clases del Ing. Hugo Ryckeboer, en la
Universidad Nacional de San Luis y el libro The Art of Computer Programming: Sorting and Searching
(Vol. III) de Donald E. Knuth
7
.
6
El nombre de dichos arboles proviene de las iniciales de los dos matem aticos rusos que describieron esta estructura en 1962:
G. M. Adelson-Velski y E. M. Landis.
7
The Art of Computer Programming: Sorting and Searching (Vol. III), de D. Knuth, 2
da
Edici on, AddisonWesley Pearson
Education, ISBN: 0-201-89685-0.
Estructuras de Datos y Algoritmos:

Arboles Binarios Ordenados 10
Universidad Nacional de San Luis