Está en la página 1de 61

Estructura de Datos Lineales

Arboles

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 1
Introduccin
Las estructuras array y listas son estructuras
de datos lineales. A cada elemento le
corresponda siempre un siguiente
elemento.
Los Arboles y Grafos son estructuras de
datos no lineales puesto que pueden tener
diferentes siguientes elementos, y tambin
se conocen como estructuras multi -
enlazadas
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 2
Terminologa bsica

Un rbol es un conjunto, de vrtices y


arcos que satisfacen ciertos requerimientos.
Un vrtice es un objeto simple (conocido
tambin como nodo) que puede tener un
nombre, adems de cierta informacin; un
arco es la unin entre dos vrtices.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 3
Terminologa bsica

Una ruta, en un rbol, es una lista de


diferentes vrtices en la que los vrtices
consecutivos se conectan por medio de
arcos dentro del rbol. Uno de los nodos del
rbol se identifica como raz (root).

Existe exactamente una ruta entre la raz y


un nodo.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 4
Terminologa bsica
Esta definicin implica que no existen
direcciones en los arcos, normalmente pensamos
en los arcos como cualquier punto ms all de la
raz.

Cada nodo, excepto la raz, tiene exactamente un


nodo arriba de l (padre) as, los nodos que se
encuentran directamente abajo de algn nodo se
denominan hijos.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 5
Terminologa bsica

Los nodos que no tienen hijos se conocen


como hojas o nodos terminales. As, un
nodo con al menos un hijo es un nodo no
terminal.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 6
Definicin recursiva

Base. Un nodo sencillo n es un rbol (rbol


trivial). Decimos que n es es la raz de ese
rbol de un slo nodo.

Induccin. Sea v un nuevo nodo y sean T1,


T2, ..., Tk uno o ms rboles con races c1,
c2, ..., ck, respectivamente.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 7
Definicin recursiva

Requerimos que ningn nodo aparezca ms


de una vez en los rboles Ti's; y por
supuesto, v, siendo un "nuevo" nodo, no
puede estar en ninguno de estos rboles.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 8
Definicin recursiva
Generamos un nuevo rbol T de v y T1, T2,
..., Tk de la siguiente forma:

a) Hacemos v la raz de T
b) Adicionamos un arco de v a cada c1, c2, ..., ck,
haciendo a cada uno de estos ltimos un hijo de la
raz v. Otra forma de ver este paso es que hemos
hecho a v el padre de cada una de las races de los
rboles T1, T2, ..., Tk.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 9
rboles ordenados, orientados y libres

Un rbol es ordenado cuando el orden de


los subrboles es importante; cuando no se
considera un orden para los subrboles, el
rbol es orientado. En este ltimo caso, si la
direccin de los arcos se ignora, el rbol es
libre.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 10
rboles ordenados, orientados y libres

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 11
Subrboles

En un rbol T, un nodo n, junto con todos


sus descendientes, es llamado un subrbol
de T. El nodo n es la raz de este subrbol.

Cada nodo es una raz de un subrbol


formado por l y los nodos debajo de l.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 12
Subrboles

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 13
Nivel, altura y longitud de ruta
Los nodos en un rbol lo dividen en niveles: el
nivel de un nodo es el nmero de nodos en la ruta
de ese nodo hasta la raz (sin incluirlo a l mismo).

La altura de un rbol es el nivel mximo entre


todos los nodos del rbol.

La longitud de ruta de un rbol es la suma de


los niveles de todos los nodos en el mismo

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 14
rbol dirigido

Un rbol es dirigido si cada nodo tiene una


direccin hacia algn otro nodo sin contener
ciclos.

Un rbol es dirigido por la raz si existe un


slo vrtice r llamado raz, con un grado de
conectividad de entrada id(r) = 0 y para el
resto de los vrtices v del rbol id(v) = 1.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 15
Anexo B

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 16
rbol binario

Un rbol binario es un conjunto finito de


elementos que, o est vaco, o est formado
de tres partes: la primera parte consiste en
un elemento denominado raz; las otras dos
partes son, por s mismas, rboles binarios,
denominados subrbol izquierdo y
subrbol derecho.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 17
Anexo B

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 18
rbol binario
Estos subrboles pueden estar vacos. Cada
elemento de un rbol binario se denomina
nodo.
En un rbol binario, generalmente se
cumple que, para cada nodo: los hijos
izquierdos de un nodo son menores a l y
los hijos derechos de un nodo son mayores
a l.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 19
rbol binario

Recursivamente definimos un rbol binario:

Base. El rbol vaco es un rbol binario

Induccin. Si r es un nodo, y T1 y T2 son


rboles binarios, entonces, existe un rbol
binario con raz r, un subrbol izquierdo T1
y un subrbol derecho T2.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 20
Propiedades
Existe exactamente una ruta que une cualquier par
de nodos en un rbol
Un rbol con N nodos tiene N - 1 arcos
Un rbol binario con N nodos internos tiene N + 1
nodos externos
La longitud de ruta externa de cualquier rbol
binario con N nodos internos es 2N veces ms
grande que la longitud de ruta interna

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 21
Definiciones

Cuando un rbol binario tiene exactamente


cero o dos subrboles es llamado rbol
estrictamente binario, de otra forma, es un
rbol de Knuth.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 22
Definiciones

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 23
Definiciones

Un rbol binario estricto de altura d es


balanceado cuando cada hoja en el rbol
est en el nivel d o d - 1.

Un rbol binario estricto de altura d es


completamente balanceado si todas sus
hojas o nodos terminales se encuentran en el
nivel d.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 24
Definiciones

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 25
Definiciones

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 26
Bosques

Un bosque es un conjunto de rboles


disjuntos, y puede ser transformado en un
rbol de Knuth con el algoritmo siguiente:

1.Ligar las races de los rboles del bosque y


seleccionar a la raz del rbol a la izquierda
como la raz del nuevo rbol

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 27
Bosques

2.Ligar a todos los hermanos de cada padre

3.Retirar todas las ligas de un padre a sus


hijos excepto la del hijo de la izquierda

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 28
Anexo B

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 29
Anexo B

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 30
Anexo B

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 31
Anexo B

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 32
Operaciones en rboles binarios
INFO(p). Regresa el contenido de n.
LEFT(p). Regresa un apuntador al hijo izquierdo
de n.
RIGHT(p). Regresa un apuntador al hijo derecho
de n.
FATHER(p). Regresa un apuntador al padre de n.
BROTHER(p). Regresa un apuntador al hermano
de n.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 33
Operaciones en rboles binarios

ISLEFT(p). Regresa un valor verdadero


(TRUE) si n es un hijo izquierdo.
ISRIGHT(p). Regresa un valor verdadero
(TRUE) si n es un hijo derecho.
MAKETREE(x). Crea un nuevo rbol
binario formado por un solo nodo con
informacin x y regresa un apuntador a ese
nodo.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 34
Operaciones en rboles binarios

SETLEFT(p,x). Recibe un apuntador p a


un nodo de un rbol binario que no tenga
hijo izquierdo. Crea un nuevo hijo izquierdo
a ese nodo con informacin x.
SETRIGHT(p,x). Recibe un apuntador p a
un nodo de un rbol binario que no tenga
hijo derecho. Crea un nuevo hijo derecho a
ese nodo con informacin x.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 35
Anexo A
Programa 54

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 36
Recorrido de rboles

Recorrer un rbol es un mtodo de visitas


de sus nodos con el objeto de sistematizar
la recuperacin de la informacin
almacenada en los mismos.

Los recorridos pueden practicarse


sistematizando la visita de los subrboles.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 37
Recorrido de rboles. Preorder

Funcin Preorder {
Se visita el nodo
Si el subrbol izquierdo existe y no se ha
visitado: llamar a Preorder
Si el subrbol derecho existe y no se ha
visitado: llamar a Preorder
Regresar
}
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 38
Recorrido de rboles. Inorder

Funcin Inorder {
Si el subrbol izquierdo existe y no se ha
visitado: llamar a Inorder
Se visita el nodo
Si el subrbol derecho existe y no se ha
visitado: llamar a Inorder
Regresar
}
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 39
Recorrido de rboles. Postorder

Funcin Postorder {
Si el subrbol izquierdo existe y no se ha
visitado: llamar a Postorder
Si el subrbol derecho existe y no se ha
visitado: llamar a Postorder
Se visita el nodo
Regresar
}
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 40
Anexo B

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 41
Borrado de nodos

Para borrar cualquier nodo de un rbol


binario, se debe de colocar en su lugar el
nodo que est ms a la izquierda del
subrbol derecho o el nodo que est ms a
la derecha del subrbol izquierdo.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 42
Anexo B

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 43
Balanceo de rboles

Cuando un rbol se desbalancea es


necesario realizar una serie de rotaciones
que acomoden la nueva raz y se genere un
rbol balanceado.
Primero, es necesario saber cundo un rbol
se ha desbalanceado. Para ello es necesario
llevar una ponderacin en cada nodo a
medida que se insertan nuevos elementos.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 44
rbol balanceado

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 45
Balanceo de rboles

As, si un nodo no tiene hijos o tiene ambos,


su ponderacin ser de 0. Si tiene el hijo
izquierdo, pero no el derecho, se le restar a
su ponderacin un 1. Si tiene el hijo
derecho, pero no el izquierdo, se le sumar
a su ponderacin un 1. As, cuando un nodo
tenga una ponderacin mayor a 1 o menor a
-1, ese nodo se encuentra desbalanceado.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 46
Balanceo de rboles

Cuatro rotaciones (depende del pivote)

Rotacin sencilla izquierda


Rotacin sencilla derecha
Rotacin doble izquierda
Rotacin doble derecha

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 47
Anexo B

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 48
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 49
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 50
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 51
Anexo A
Ejemplo 1 (Balanceo)
Programa 55-a
Programa 55-b
Programa 55-c

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 52
rboles binarios Entretejidos o
Enhebrados

Dada la importancia de los rboles ligados,


conviene desarrollar algoritmos no recursivos
para manipularlos y estudiar las exigencias de
tiempo y espacio de dichos algoritmos.

Al cambiar las ligas nil en ligas especiales


(entretejidas), es posible realizar recorridos,
inserciones y eliminaciones sin recurrir a una pila
o a la recursin.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 53
rboles Entretejidos

En un rbol binario entretejido a la derecha,


cada liga derecha nil se reemplaza por una
liga especial con el sucesor del nodo bajo la
transversal en orden, llamada entretejido
derecho.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 54
rboles Entretejidos

Usando este tipo de rbol nos ser fcil


hacer una transversal en orden del mismo,
pues lo nico que se requiere es seguir una
liga o entretejido ordinario para hallar el
siguiente nodo que se visitar.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 55
rboles Entretejidos

En un rbol entretejido izquierdo se


sustituye cada liga izquierda nil con una
liga especial con el predecesor del nodo
bajo la transversal en orden.

Si se tienen ambos entretejidos, el resultado


se conoce como rbol binario totalmente
entretejido.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 56
rboles Entretejidos
Figura 33

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 57
rboles de Expresin

Un rbol de expresin se construye a partir


de los operandos y operadores simples de
una expresin (aritmtica o lgica),
colocando los operandos simples como las
hojas de un rbol binario y los operadores
como los nodos interiores.

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 58
rboles de Expresin

En cada operador binario, el subrbol


izquierdo contiene todos los operandos y
operadores simples en el operando
izquierdo del operador dado, y el subrbol
derecho contiene todo lo del operando
derecho.
En un operador unitario, un subrbol estar
vaco.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 59
rboles de Expresin

Se acostumbra escribir algunos operadores


unitarios a la izquierda de sus operandos,
como - (negacin unitaria) o bien las
funciones estndar como log() y cos().

Otros se escriben a la derecha, entre ellos la


funcin factorial ( )!, o la que asume el
cuadrado de un nmero: ( )2
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 60
rboles de Expresin
Figura 34
Figura 35
Figura 36

UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII 61

También podría gustarte