Professional Documents
Culture Documents
1.-Introduccin (arboles) ---------------------------------------------------------------------------------------------2 2.-Arboles en general -------------------------------------------------------------------------------------------------2 3.-Caractersticas y propiedades de los arboles-----------------------------------------------------------------3 4.-Operaciones de arboles-------------------------------------------------------------------------------------------4 5.-Uso de arboles-------------------------------------------------------------------------------------------------------4 6.-Tipos de arboles-----------------------------------------------------------------------------------------------------4 7.-Representacin de arboles generales como binarios ------------------------------------------------------6 8.-Representacin de un bosque como rbol binario ---------------------------------------------------------8 9.-Representacin de arboles binarios en memoria ----------------------------------------------------------10 10.-Recorrido en arboles binarios ---------------------------------------------------------------------------------12 11.-Arboles binarios de bsqueda ---------------------------------------------------------------------------------13 12.-Insercin en un rbol binario de bsqueda -----------------------------------------------------------------14 13.-Borrado en un rbol binario de bsqueda -------------------------------------------------------------------15 14.-Arboles balanceados ----------------------------------------------------------------------------------------------16 15.-Restructuracin en rbol balanceado -------------------------------------------------------------------------16 16.-Insercin en arboles balanceados ------------------------------------------------------------------------------17 17.-Borrado en arboles balanceados -------------------------------------------------------------------------------20 18.-Arboles multicaminos ---------------------------------------------------------------------------------------------21 19.-Grafos------------------------------------------------------------------------------------------------------------------23 20.-Representacin de un grafo--------------------------------------------------------------------------------------24
REPRESENTACION DE ARBOLES
Diferentes formas de representar una estructura de rbol. A) diagramas de ven. B) anidacin de parntesis. c) notacin decimal de Dewey. D) notacin indentada. E) grafo
2.-ARBOLES EN GENERAL
Un rbol es una estructura jerrquica aplicada sobre una coleccin de elementos u objetos llamados nodos; uno de ellos cuales es conocido como raz. Adems se crea una relacin o parentesco entre los nodos dando lugar a trminos como padre, hijo, hermano, antecesor, sucesor, ancestro, etctera. Se utiliza la recursin para definir un rbol porque representa la forma ms apropiada y porque adems en una caracterstica inherente a los mismos.
2
3.-CARACTERSTICAS Y PROPIEDADES
Todo rbol que no es vacio, tiene un nico nodo raz. Un nodo X es descendiente directo de un nodo Y, si el nodo X es apuntado por el nodo Y. En este cado es comn utilizar la expresin X es hijo de Y. Un nodo X es antecesor directo de un nodo Y, si el nodo X apunta al nodo Y. En este caso es comn utilizar la expresin X es padre de Y. Se dice que todos los nodos que son descendientes directos (hijos) de un mismo nodo (padre), son hermanos. Todo nodo que no tiene ramificaciones (hijos), se conoce con el nombre terminal u hoja. Todo nodo que no es raz, ni terminal u hoja, se conoce con el nombre de interior. Grado es el nmero de descendientes directos de un determinado nodo. Grado del rbol es el mximo grado de todos los nodos del rbol. Nivel es el nmero de arcos que deben ser recorrido para llegar a un determinado nodo. Por definicin la raz tiene nivel 1. Altura del rbol es el mximo nmero de niveles de todos los nodos del rbol
4.-OPERACIONES DE RBOLES
Enumerar todos los elementos. Buscar un elemento. Dado un nodo, listar los hijos (si los hay). Borrar un elemento. Eliminar un subrbol (algunas veces llamada podar). Aadir un subrbol (algunas veces llamada injertar). Encontrar la raz de cualquier nodo.
5.-USO DE ARBOLES
Formulas matemticas. Organizar adecuadamente la informacin. Registrar la historia de un campeonato de tenis. Construir un rbol genealgico. Anlisis de circuitos elctricos. Para numerar los captulos y secciones de un libro.
6.-TIPOS DE ARBOLES
Un rbol ordenado: Es aquel en el que las ramas de los nodos estn ordenadas. Los de grado 2 se llaman rboles binarios. Cada rbol binario tiene un subrbol izquierda y subrbol derecha.
+ A
B
C
^
/
D
3.
+ +
*
+ 12 9
*
A B C
E D
rboles similares: Los que tienen la misma estructura (forma) rboles Equivalentes: Son los rboles similares y sus nodos contienen la misma informacin. rboles n-ario: Es un rbol ordenado cuyos nodos tiene N subrboles, y donde cualquier nmero de subrboles puede ser rboles vacos.
a
1 2 3
4
b
7
e
d
6
8 9
f
h i
rbol binario completo: Es un rbol en el que todos sus nodos, excepto los del ultimo nivel, tienen dos hijos.
Nmero de nodos en un rbol binario completo = 2h1 (en el ejemplo h = 4, 15) esto nos ayuda a calcular el nivel de rbol necesario para almacenar los datos de una aplicacin.
ARBOL GENERAL.
2._ Enlazar en forma vertical el nodo padre con el hijo que se encuentra mas a la izquierda. Adems, se debe eliminar el vinculo del padre con el resto de sus hijos.
3._Rotar el diagrama resultante, aproximadamente 45 grados hacia la izquierda y as se obtendr el rbol binario.
1._ Enlazar en forma horizontal las races de los distintos arboles generales.
2._ Enlazar los hijos de cada nodo en forma horizontal (hermanos) Antes del enlace Despus del enlace
En forma completa.
4._Rotar el diagrama resultante, aproximadamente 45 grados hacia la izquierda y as se obtendr el rbol binario.
10
Ejemplo
Procedimiento crear(q:nodo) inicio mensaje("Rama izquierda?") lee(respuesta) si respuesta = "si" entonces new(p) q(li) <-- nil crear(p) en caso contrario q(li) <-- nil
11
mensaje("Rama derecha?") lee(respuesta) si respuesta="si" entonces new(p) q(ld)<--p crear(p) en caso contrario q(ld) <--nil fin INICIO new(p) raiz<--p crear(p) FIN
13
12.-INSERCIN EN UN RBOL BINARIO DE BSQUEDA La insercin es una operacin que se puede realizar eficientemente en un rbol binario de bsqueda. La estructura crece conforme se inserten elementos al rbol. Los pasos que deben realizarse para insertar un elemento a un rbol binario de bsqueda son los siguientes: 1.-Debe compararse la clave a insertar con la raz del rbol. Si es mayor, debe avanzarse hacia el subrbol derecho. Si es menor, debe avanzarse hacia el subrbol izquierdo. 2.-Repetir sucesivamente el paso 1 hasta que se cumpla alguna de las siguientes condiciones: 2.1.-El subrbol derecho es igual a vacio, o el subrbol izquierdo es igual a vacio, en cuyo caso proceder a insertar el elemento en lugar en el lugar que le corresponde. 2.2.-La clave que quiere insertarse es igual a un nodo del rbol, cuyo caso no se realiza la insercin. EJEMPLO DE INSERCIN EN UN RBOL BINARIO DE BSQUEDA
14
Caso 2
Si el elemento a borrar tiene un solo hijo, entonces tiene que sustituirlo por el hijo
15
Caso 3 Si el elemento a borrar tiene dos hijos, entonces se tienen que sustituir por el nodo que se encuentra ms a la izquierda en el subrbol derecho, o por el nodo que se encuentra ms a la derecha en el subrbol izquierdo.
14.-ARBOLES BALANCEADOS
Con el objeto de mejorar el rendimiento en la bsqueda surgen los rboles balanceados. La idea central de estos es la de realizar reacomod o balanceos despus de inserciones o eliminaciones de elementos. Estos rboles tambin nombrados recientemente AVL en honor a sus inventores, dos matemticos rusos Adelson-Velskii y Landis. Un rbol balanceado es un rbol binario en el cual las alturas de los dos subrboles para cada nodo nunca difieren en ms de una unidad.
Factor de Equilibrio
El Factor de Equilibrio (FE) o de Balance (FB) de un nodo se define como la altura del SAD menos la altura del SAI correspondiente. El Factor de Equilibrio de cada nodo en un rbol balanceado ser 1, 1 0. Si FE llegara a tomar los valores de 2 2, entonces debera reestructurarse el rbol.
16
las ramas izquierdas (RII: Rotacin Izquierda Izquierda). Si la rotacin es compuesta puede realizarse por las ramas derecha e izquierda (RDI: Rotacin Derecha Izquierda) o por las ramas izquierda y derecha (RID: Rotacin Izquierda Derecha).
CASO 2. El SAI y el SAD del rbol balanceado tienen altura diferente (hSAD hSAI): CASO 2.1. Si hSAD > hSAI a) Si se inserta un elemento en SAI entonces hSAD ser igual a hSAI Las ramas tienen la misma altura por lo que se mejora el equilibrio
17
b) Si se inserta un elemento en SAD entonces el rbol debe ser reestructurado Las ramas estn desequilibradas por lo que se requiere reestructuracin
CASO 2.2. Si hSAD < hSAI a) Si se inserta un elemento en SAI entonces el rbol debe ser reestructurado Las ramas estn desequilibradas por lo que se requiere reestructuracin b) Si se inserta un elemento en SAD entonces hSAD ser igual a hSAI Las ramas tienen la misma altura por lo que se mejora el equilibrio Para poder determinar si un rbol est balanceado debe calcularse el FE de cada nodo del rbol.
El proceso de insercin en un rbol balanceado consta de los siguientes pasos: 1) Primero debe seguirse el camino de bsqueda del rbol, hasta localizar el lugar donde hay que insertar el elemento. 2) Se calcula su FE, que ser cero (pues el elemento recin insertado posee SAI y SAD vacos). Luego, se regresa por el camino de bsqueda calculando el FE de todos los dems nodos que componen el rbol. Si en alguno de los nodos se viola el criterio de equilibrio entonces debe reestructurarse el rbol. El proceso termina al llegar a la raz del rbol, o cuando se realiza la reestructuracin del mismo, en cuyo caso no es necesario determinar el FE de los nodos restantes.
Ejemplo de Insercin de Nodos con rboles AVL Se insertara la siguiente secuencia: 65, 50, 23, 70, 82, 68 y 39
18
19
La eliminacin de la clave 10 es un proceso sencillo por que no contiene hijos 2._Si el elemento a borrar tiene un solo descendiente, entonces tiene que sustituirse por ese descendiente.
3._Si el elemento a borrar tiene los dos descendientes, entonces tiene que sustituirse por el nodo que se encuentra ms ala izquierda en el subrbol derecho o por el nodo que se encuentra ms ala derecha en el subrbol izquierdo.
20
Al eliminar la clave 39 se origina el caso ms difcil de borrado en arboles. La eliminacin de clave con dos descendientes. Se opta por sustituir dicha clave por el nodo que se encuentra ms ala derecha en el subrbol izquierdo
18.-ARBOLES MULTICAMINOS
Es la generalizacin del rbol Binario Cada nodo puede almacenar (n) claves y tener n+1 hijos El rbol B es un tipo especial de rbol multicamino Es til en sistemas de Archivos y para manejar Sistemas de Bases de Datos Permiten almacenar grandes cantidades de datos Que no entran en memoria secundaria Se aplica para la organizacin de ndices o claves De tal forma que el acceso a esos datos Usando dispositivos externos (no en memoria principal) Tengan un costo relativamente bajo
Caractersticas
Posee un orden m. Este define el mximo de claves e hijos que cada nodo puede tener,
21
Cada nodo se denomina pgina Es un rbol lleno (y balanceado). Todas sus hojas estn en el mismo nivel Cada pgina interna Posee mximo: m ramas Y Mnimo: m/2 ramas, redondeado Si posee un nmero n de ramas, puede almacenar hasta n-1 claves Y la raz Tiene mximo: m ramas Y mnimo: 2 ramas, o 0 si solo existe el nodo raz
22
19.-GRAFOS
Graph es un T.D.A. que representa un conjunto finito N de nodos, llamados vrtices, relacionados entre s por un conjunto R de arcos.
Grafo con 5 vrtices y 6 arcos. Vrtices del Grafo N ={ A, B, C, D, E } Arcos del Grafo R={(A, A), (A, B), (A, D), (A, C), (D, C), (C, E)}
Permiten estudiar las interrelaciones entre unidades que interactan unas con otras.
EJEMPLO Una red de computadoras puede representarse y estudiarse mediante un grafo, en el cual los vrtices representan terminales y las aristas representan conexiones (las cuales, a su vez, pueden ser cables o conexiones inalmbricas).
23
20.-REPRESENTACIN DE UN GRAFO
Existen dos maneras conocidas para representar un grafo Una coleccin de listas de adyacencia Representada con un arreglo de listas encadenadas con length igual al nmero de estados Una matriz de adyacencia Con casillas que representan las relaciones de todos los estados con todos los estados.
LISTA DE ADYACENCIA
una matriz Tiene muchos vrtices y Pocos arcos La Matriz de Adyacencia Tendr demasiados ceros Ocupara mucho espacio Los vrtices Pueden formar una lista, no un vector Los arcos Son relaciones entre vrtices Se pueden representar con una lista x cada vrtice
24
EJEMPLO
Matriz de Adyacencia
Representa para cada nodo cules son sus vrtices adyacentes. Cada fila y cada columna de la matriz corresponden con un vrtice en particular. Los elementos de la matriz son booleanos Si el elemento (i, j) es verdadero, existe un arco que va del vrtice i al vrtice j y, si el elemento (i, j) es falso, no existe arco del vrtice i al vrtice j. Si el grafo es no orientado, si existe el arco del vrtice i al vrtice j existe el arco del vrtice j al vrtice i.
25
ACLARACIONES
Si el conjunto N es vaco, el grafo ser vaco. Cada arco de un grafo establece una nica relacin entre dos nodos. No existe restriccin en la relacin que establece un arco, o sea, un nodo puede estar relacionado consigo mismo o con otro nodo. Cada arco se representa a travs de un par, donde cada elemento determina uno de los nodos
26