Está en la página 1de 13

rboles Binarios

ESTRUCTURA DE DATOS
Algoritmos, abstraccin y objetos
Luis Joyanes Aguilar
Definicin - 1
Un rbol binario es un rbol en el que cada nodo no puede tener
ms de dos hijos o descendientes.
En particular, un rbol binario es un conjunto de nodos que es, o
bien el conjunto vaco, o un conjunto que consta de un nodo raz
enlazado a dos rboles binarios disjuntos denominados subrbol
izquierdo y subrbol derecho.
Cada uno de estos subrboles es, a su vez, un rbol binario.






Definicin - 2
En un rbol binario los hijos se conocen como hijo izquierdo e
hijo derecho.





Un nodo que no tiene hijos se denomina hoja.
Los nodos con descendientes se denominan nodos interiores.
Cualquier nodo sin sucesores se denomina un nodo terminal.
La altura del rbol se define como el nivel ms alto del rbol.
Caractersticas - 1
El nivel o profundidad de un nodo se define
como una cantidad mayor en uno al nmero
de sus ascendientes.
Si n es la raz de un rbol T, entonces est en el
nivel 1.
Si n no es la raz de T, entonces su nivel es
mayor que el nivel de su padre.


La altura de un rbol es el nmero de nodos
en el camino ms largo desde la raz a una
hoja; dicho de otro modo, la altura de un
rbol es el nmero de niveles distintos.
Si T es vaco, entonces la altura es O.
Si T no es vaco, entonces su altura es igual al
nivel mximo de sus nodos.



Caractersticas - 2
Un rbol binario lleno de altura h tiene todas sus hojas
a nivel h y todos los nodos que estn a nivel menor que
h tiene cada uno dos hijos (cada nodo tiene o dos hijos
o ninguno si es una hoja).
Si T est vaco, entonces T es un rbol binario lleno de
altura O.
Si no est vaco y tiene altura h > 0, entonces T es un rbol
binario lleno si los subrboles de la raz son ambos rboles
binarios llenos de altura h - 1.




Caractersticas - 3
Un rbol binario completo de altura h es un rbol binario que est
relleno a partir del nivel h - 1, con el nivel h relleno de izquierda a
derecha.
Ms formalmente, un rbol binario de altura h es completo si:
Todos los nodos de nivel h - 2 Y superiores tienen dos hijos cada uno.
Cuando un nodo tiene un descendiente derecho a nivel h, todas las
hojas de su subrbol izquierdo estn a nivel h.

Si un rbol binario es lleno,
Es necesariamente completo








Caractersticas - 4
Un rbol binario es totalmente equilibrado si los
subrboles izquierdo y derecho de cada nodo
tienen la misma altura.
Un rbol binario completo es equilibrado,
mientras que un rbol binario lleno es totalmente
equilibrado.





(a) Equilibrado, (b) completamente equilibrado, (c) y (d) no equilibrados
Recorrido de un rbol binario
El proceso u operacin de acceder o visitar a todos los
nodos (datos) de un rbol se conoce normalmente
como recorrido de un rbol.
El rbol puede ser recorrido en varios rdenes.
Los tres recorridos ms tpicos se clasifican de acuerdo
al momento en que se visita su raz en relacin con la
visita a sus subrboles.





Preorden Enorden Postorden
l. Visitar el raz
2. Ir a subrbol izquierdo
3. Ir a subrbol derecho
l. Ir a subrbol izquierdo
2. Visitar el raz
3. Ir a subrbol derecho
l. Ir a subrbol izquierdo
2. Ir a subrbol derecho
3. Visitar el raz
Recorrido de un rbol binario
En el rbol de la Figura los posibles recorridos
pueden ser:
Preorden Enorden Postorden
GDBACEFKHJIML ABCDEFGIJHKLM ACBFEDIJHLMKG
rboles de Expresin
Los rboles binarios se utilizan para representar expresiones en memoria;
esencialmente, en compiladores de lenguaje de programacin.
La Figura muestra un rbol binario de expresiones para la expresin aritmtica (a +
b) * c.
Obsrvese que los parntesis no se almacenan en el rbol pero estn implicados
en la forma del rbol.
En la Figura se puede ver cmo el operador que est en la raz es *, su subrbol
izquierdo representa la subexpresin (x + y ) y su subrbol derecho representa la
subexpresin (A - B).
El nodo raz del subrbol izquierdo contiene el operador (+) de la subexpresin
izquierda y el nodo raz del subrbol derecho contiene el operador (-) de la
subexpresin derecha. Todos los operandos letras se almacenan en nodos hojas.




rboles de Expresin
Si se supone que todos los operadores tienen dos operandos, se
puede representar una expresin por un rbol binario cuya raz
contiene un operador y cuyos subrboles izquierdo y derecho son
los operandos izquierdo y derecho, respectivamente, cada
operando puede ser una letra (x , Y, A, B, etc.) o una subexpresin
representada como un subrbol.
Utilizando el razonamiento anterior, se puede escribir la expresin
almacenada como (x + Y) * (A-B)





rboles de Expresin - Ejercicios
Deducir las expresiones que representan los
siguientes rboles binarios





Solucin:
a) X* (Y / - Z ) b) A+ [( B *-(C+D )] e) [A* (X+Y) ]*C
rboles de Expresin - Ejercicios
Dibujar la representacin en rbol binario de
cada una de las siguientes expresiones
a) X * Y / [ (A+B) * C ]
b) (X*Y / A) + (B*C)

Solucin:

También podría gustarte