You are on page 1of 26

INDICE INDICE ARBOLES Y GRAFOS

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

ARBOLES Y GRAFOS ESTRUCTURAS NO LINEALES ARBOLES


1.-INTRODUCCION
Al analizar la estructura rbol se introduce el concepto de estructura de ramificacin entre nodos. Los arboles representan las estructuras no lineales y dinmicas de datos ms importantes en computacin. Dinmicas, puesto que la estructura rbol puede cambiar durante la ejecucin de un programa. No lineales, puesto que a cada elemento del rbol pueden seguirle varios elementos.

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.

rboles de expresin Representan un orden de ejecucin

+ +

*
+ 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.

7.-REPRESENTACION DE ARBOLES GENERALES COMO BINARIOS.


UN RBOL BINARIO: Es una estructura de datos en la cual cada nodo siempre tiene un hijo izquierdo y un hijo derecho, no pueden tener ms de dos hijos. Es una informacin ordenada de tal forma que todos los elementos a la izquierda de la raz son menores a la raz y todos lo elementos a la derecha de la raz son mayores a la raz.

LOS PASOS A SEGUIR PARA CONVERSIN DE UN ARBOL GENERAL A UN ARBOL BINARIO:

ARBOL GENERAL.

1._ Enlazar los hijos de cada nodo en forma horizontal (hermanos).

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.

8.-REPRESENTACIN DE UN BOSQUE COMO RBOL BINARIO


Un bosque representa un conjunto normalmente ordenado de uno o ms arboles generales. Los pasos a seguir para conversin del bosque a un 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.

9.-REPRESENTACIN DE ARBOLES BINARIOS EN MEMORIA


Existen dos formas tradicional es de representar un rbol binario en memoria: 1._Por medio de datos tipo puntero, tambin conocidos como variables dinmicas.

Campo donde se almacena la direccin del subrbol izquierdo del nodo t

Campo donde se almacena la informacin de inters del nodo

Campo donde se almacena la direccin del subrbol derecho del nodo t

10

Ejemplo

2._por medio de arreglos.

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

10.-RECORRIDO DE ARBOLES BINARIOS


1.-Recorrido en preorden Visitar la raz Recorrer el subrbol izquierdo Recorrer el subrbol derecho 2.-Recorrido en inorden Recorrer el subrbol izquierdo Visitar la raz Recorrer el subrbol derecho 3. Recorrido en postorden Recorrer el subrbol izquierdo
12

Recorrer el subrbol derecho Visitar la raz EJEMPLO DE RECORRIDO EN ARBOLES BINARIOS

11.-ARBOLES BINARIOS DE BSQUEDA


El rbol binario de bsqueda es una estructura sobre la cual se pueden realizar eficientemente las operaciones de bsqueda, insercin y eliminacin. Ventajas: En un arreglo es posible localizar datos eficientemente si estos se encuentran ordenados, pero las operaciones de insercin y eliminacin resultan costosas. En las listas, dichas operaciones se pueden llevar a cabo con facilidad, sin embargo la bsqueda es una operacin bastante costosa que incluso nos puede llevar a recorrer todos los elementos de ella para localizar uno en particular. Formalmente se define un rbol binario de bsqueda de las siguientes maneraPara todo nodo T del rbol debe cumplirse que todos los valores de los nodos del subrbol izquierdo de T sern menores al valor del nodo T. De forma similar, todos los valores de los nodos del subrbol derecho de T deben ser mayores al valor del nodo T. EJEMPLO DE ARBOL BINARIO DE BUSQUEDA

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

13.-BORRADO EN UN RBOL BINARIO DE BSQUEDA


Para eliminar un nodo existen los siguientes casos: 1. Si el elemento a borrar es Terminal (hoja), 2. Si el elemento a borrar tiene un solo hijo, 3. Si el elemento a borrar tiene los dos hijo, 1. Caso 1 Si el elemento a borrar es terminal (hoja), simplemente se elimina. aux = aux.izq = null

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.

15.-REESTRUCTURACIN DE ARBOLES AVL


Reestructurar un rbol balanceado significa rotar los nodos del mismo. La rotacin puede ser simple o compuesta. En el primer tipo de rotacin se involucran dos nodos y en el segundo, se afectan tres. Si la rotacin es simple puede realizarse por las ramas derechas (RDD: Rotacin Derecha Derecha) o por

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).

16.-INSERCIN EN RBOLES BALANCEADOS


CASO 1. El SAI y el SAD del rbol balanceado tienen la misma altura (hSAD = hSAI): a) Si se inserta un elemento en SAI entonces hSAD ser menor que hSAI b) Si se inserta un elemento en SAD entonces hSAD ser mayor que hSAI Ya sea para a) o para b), no se viola el criterio de equilibrio o balance del rbol.

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

17.-BORRADO EN ARBOLES BALANCEADOS


Consiste en quitar un nodo del rbol sin violar los principios que define justamente un rbol balanceado. 1._Si el elemento a borrar es terminal u hoja, simplemente se suprime.

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

You might also like