Académique Documents
Professionnel Documents
Culture Documents
Arboles
Las
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
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
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). exactamente una ruta entre la raz y un nodo.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
Existe
en los arcos, normalmente pensamos en los arcos como cualquier punto ms all de la raz.
direcciones
no existen
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
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
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. 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
Induccin.
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
Generamos
de la siguiente forma:
a) b)
Hacemos v la raz de T 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 UNIVERSIDAD DEL CAUCA - PIS rboles T1, T2, ..., Tk. Ing. Miguel Angel Nio Zambrano
EDII
10
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
11
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
12
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.
nodo es una raz de un subrbol formado por l y los nodos debajo de l.
Cada
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
13
Subrboles
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
14
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). de un rbol es el nivel mximo entre todos los nodos del rbol.
La altura
La longitud de ruta
de un rbol es la suma de los niveles de todosUNIVERSIDAD los nodos en DEL CAUCA - PIS el Ing. Miguel Angel Nio Zambrano mismo EDII
15
rbol dirigido
Un
rbol es dirigido si cada nodo tiene una direccin hacia algn otro nodo sin contener ciclos. 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
Un
16
Anexo B
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
17
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
18
Anexo B
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
19
Estos
En
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
20
rbol binario
Recursivamente
binario:
definimos
un
rbol
21
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 DEL CAUCA - PIS La longitud de rutaUNIVERSIDAD externa de Ing. Miguel Angel Nio Zambrano cualquier rbol binario con N nodosEDII internos es 2N veces ms grande
22
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
23
Definiciones
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
24
Definiciones
Un
rbol binario estricto de altura d es balanceado cuando cada hoja en el rbol est en el nivel d o d - 1. 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
Un
25
Definiciones
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
26
Definiciones
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
27
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
28
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
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
Anexo B
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
33
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. UNIVERSIDAD DEL CAUCA - PIS BROTHER(p). Regresa un apuntador Ing. Miguel Angel Nio Zambrano EDII al hermano de n.
34
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
35
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
36
Anexo A
Programa 54
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
37
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. recorridos pueden practicarse sistematizando la visita de los subrboles.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
Los
38
39
40
41
Anexo B
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
42
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
43
Anexo B
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
44
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. es necesario saber cundo un rbol se ha desbalanceado. Para ello es necesario llevar una ponderacin en cada nodo a medida que se insertan UNIVERSIDAD DEL CAUCA - PIS nuevos elementos.
Ing. Miguel Angel Nio Zambrano EDII
Primero,
45
rbol balanceado
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
46
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
47
Balanceo de rboles
Cuatro
Rotacin
sencilla izquierda Rotacin sencilla derecha Rotacin doble izquierda Rotacin doble derecha
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
48
Anexo B
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
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
52
Anexo A
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
53
la importancia de los rboles ligados, conviene desarrollar algoritmos no recursivos para manipularlos y estudiar las exigencias de tiempo y espacio de dichos algoritmos. cambiar las ligas nil UNIVERSIDAD en ligas DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano especiales (entretejidas), es posible EDII realizar recorridos, inserciones y
Al
54
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
55
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
56
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. se tienen ambos entretejidos, el resultado se conoce como rbol binario totalmente entretejido.
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
Si
57
rboles Entretejidos
Figura 33
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII
58
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
59
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
60
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(). 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
Otros
61
rboles de Expresin
UNIVERSIDAD DEL CAUCA - PIS Ing. Miguel Angel Nio Zambrano EDII