Você está na página 1de 161

ndice

Tema 1. rbol binario: clasificacin, caractersticas generales, implementacin. Pgina Implementacin de rboles generales y conversin de rbol general a binario. -------------------------3 Tema 2: recorrido en rbol binario: inorden, preorden, posorden y por nivel. rboles----------------16 De bsqueda binaria: caractersticas, inserccin/eliminacin Tema 3: Arboles AVL---------------------------------------------------------------------------------------------------30 Tema 4: arboles heap------------------------------------------------------------------------------------------------53 Tema 5: arboles B, arboles B+--------------------------------------------------------------------------------------71 Tema 6: arboles 2-3--------------------------------------------------------------------------------------------------101 Tema 7: arboles rojo- negro----------------------------------------------------------------------------------------111 Tema 8: Grafos----------------------------------------------------------------------------------------------------------134

Tema 1 rbol binario

Caractersticas de un rbol

1. 2. 3. 4.

Nivel: es la distancia del nodo hasta la raz


Su altura es la distancia mxima 1 Al nodo, se les puede llamar de las sig. Maneras Nodo Padre: es aquel que apunta a otros nodos Nodo Hijo: es el que deriva de otro nodo Nodo Raz : es el nico que no tiene padre Hojas: son todos aquellos que no tienen hijos

Definicin

El rbol binario es aquel en donde ningn nodo puede tener mas de dos subrboles.

Caractersticas de un rbol binario


No hay mas de dos subrboles por nodo

Es recursivo
Estructuras de control de datos Cada nodo puede tener 0, 1 o 2 hijos Cada nodo puede ser la raz de un subrbol

Clasificacin:

rbol binario lleno

Es un rbol en el que cada nodo tiene 0 o 2 hijos.

rbol perfecto

Es un rbol binario lleno en el que todas las hojas estn en la misma profundidad(o altura)

rbol completo

Un rbol binario completo es como un rbol binario lleno en el que todas las hojas estn a profundidad n o n-1, para alguna n.

implementacin
1.

Este tipo de rbol se puede implementar de manera esttica y dinmica , en ambos casos cada nodo del rbol tendr 3 valores La informacin de un tipo base contenida en el nodo

2.
3.

Un enlace al hijo izquierdo


Un en lace al hijo derecho

Implementacin dinmica
La implementacin dinmica de los rboles binarios es parecida a una lista doblemente ligada.

Estructura del nodo:


Un enlace al padre del nodo. La informacin contenida en el nodo. Un enlace al hijo derecho. Un enlace al hijo izquierdo

Para este caso las referencias hacia el padre,

el hijo izquierdo y el hijo derecho son apuntadores hacia objetos nodo, de modo que la estructura del rbol dinmico es mas o menos:

Implementacin esttica

Para implementar un rbol como un arreglo, es necesario declarar un nodo como un objeto. Y este a su vez con un campo de informacin y dos de referencia. Estos campos de referencia deben contener los ndices de las celdas del arreglo en el cual se almacenan los hijos izquierdos y derechos.

Transformacin de un rbol general a binario


Los pasos para convertir un rbol general en un rbol binario son los siguientes:
1.

Deben enlazarse los hijos de cada nodo en forma horizontal (los hermanos).

2.

Deben enlazarse en forma vertical el nodo padre con el hijo que se encuentre mas a la izquierda. Adems debe eliminarse el vinculo de ese padre con el resto de sus hijos.

Debe rotarse el diagrama resultante, aproximadamente 45 hacia la izquierda, as se obtendr el rbol binario correspondiente.

Tema 2 recorrido en rbol binario: inorden, preorden, posorden y por nivel. Arboles de bsqueda binaria: caractersticas, insercin/ eliminacin

rbol binario
Son rboles cuyos nodos contienen dos enlaces (uno de los cuales puede ser null).

Recorrido inorden

Pasos para un recorrido inorden:

1. Se recorre el subrbol izquierdo. 2. Se Procesa el valor en el nodo. 3. Se recorre el subrbol derecho.

El recorrido inorden no procesa el valor en un nodo sino hasta que se procesan los valores en el subrbol izquierdo de ese nodo. 6 13 17 27 33 42 48 Observe que el recorrido inorden de un rbol de bsqueda binaria imprime los valores de los nodos en orden ascendente. El proceso de crear un rbol de bsqueda binaria ordena los datos de antemano; por lo tanto, a este proceso se le conoce como ordenamiento de rbol binario.

Recorrido preorden
Pasos para un recorrido Preorden: 1. Procesar el valor en el nodo 2. Recorrer el subrbol izquierdo.

3. Recorrer el subrbol derecho.


El recorrido Preorden procesa el valor en cada uno de los nodos, a medida que se van visitando. Despus de procesar el valor en un nodo dado, el recorrido Preorden procesa los valores en el subrbol izquierdo y despus los valores en el subrbol derecho. 27 13 6 17 42 33 48

Recorrido posorden

pasos para un recorrido Postorden:


1. Se recorre el subrbol izquierdo. 2. Se recorre el subrbol derecho. 3. Se procesa el valor en el nodo. El recorrido Postorden procesa el valor en cada nodo despus de procesar los valores de todos los hijos de ese nodo. 6 17 13 33 48 42 27

Por niveles
En este caso el recorrido se realiza en orden por los distintos niveles del rbol. As, se comenzara tratando el nivel 1, que slo contiene el nodo raz, seguidamente el nivel 2, el 3 y as sucesivamente.

En el rbol de la figura el recorrido en amplitud sera: 2, 7, 5, 2, 6, 9, 5, 11 y 4.


Al contrario que en los mtodos de recorrido en profundidad, el recorrido por niveles no es de naturaleza recursiva. Por ello, se debe utilizar una cola para recordar los subrboles izquierdos y derecho de cada nodo.

caractersticas
Un rbol de bsqueda binaria (sin valores de nodo duplicados) cuenta con la caracterstica de que los valores en cualquier subrbol izquierdo son menores que el valor del nodo padre de ese subrbol, y los valores en cualquier subrbol derecho son mayores que el valor del nodo padre de ese subrbol.

Insercion del rbol binario

La insercin en un rbol binario de bsqueda es una operacin que se puede realizarse eficientemente en este tipo de estructura de datos. La estructura crece conforme se insertan elementos al rbol. Los pasos que se deben realizar para agregar un nuevo nodo a un rbol binario de bsqueda son los siguientes:

1. Comparar la clave a insertar con la raz del rbol. Si es mayor, se sigue con el a subrbol derecho. Si es menor, se contina con el subrbol izquierdo. 2. Repetir sucesivamente el paso 1 hasta que se cumpla alguna de las siguientes a condiciones: 2.1 El subrbol derecho, o el subrbol izquierdo, es igual a vaco, en cuyo caso se proceder a insertar el elemento en el lugar que le corresponde.

Un rbol binario ordenado debemos tener especial cuidado en la insercin. Inicialmente el rbol est vaco, es decir raz apunta a null:

Insertamos el 400

Insertamos el valor 100. Debemos analizar si raz es distinto a null verificamos si 100 es mayor o menor a la informacin del nodo apuntado por raz, en este caso es menor y como el subrbol izquierdo es null debemos insertarlo all.

Insertamos el 700 y el rbol ser:

Insertamos el 200. Hay que tener en cuenta que siempre comenzamos las comparaciones a partir de raz. El 200 es menor que 400, descendemos por el subrbol izquierdo. Luego analizamos y vemos que el 200 es mayor a 100, debemos avanzar por derecha. Como el subrbol derecho es null lo insertamos en dicha posicin

Como podemos observar si cada vez que insertamos un nodo respetamos este algoritmo siempre estaremos en presencia de un rbol binario ordenado. Posteriormente veremos el algoritmo en java para la insercin de informacin en el rbol.

Eliminacin de rbol binario


La eliminacin de nodos en un rbol binario depende del numero de hijos que tenga el nodo. Existen tres casos: a) El Nodo No Tiene Hijos Entonces el nodo se elimina simplemente remplazando su posicin por el puntero null. b) El Nodo Tiene Un Hijo Entonces el nodo se elimina remplazando su posicin por la posicin del hijo nico que tiene. c) El Nodo Tiene Dos Hijos Entonces el nodo es eliminado y es remplazado por el sucesor mayor de sus dos hijos.

Arboles avl

Definicin
El nombre AVL son las iniciales de los hombres que idearon este tipo de rbol Adelson-Velskii y Landis en 1962. Bsicamente un rbol AVL es un rbol binario de bsqueda al que se le aade una condicin de equilibrio. Esta condicin es que para todo nodo la altura de sus subrboles izquierdo y derecho pueden diferir a lo sumo en 1.

CARACTERSTICAS
Un AVL es un ABB. La diferencia entre las alturas de los subrboles derecho e izquierdo no debe excederse en ms de 1. Cada nodo tiene asignado un peso de acuerdo a las alturas de sus subrboles.

Caractersticas
Un AVL es un ABB. La diferencia entre las alturas de los subrboles derecho e izquierdo no debe excederse en ms de 1. Cada nodo tiene asignado un peso de acuerdo a las alturas de sus subrboles.

Ejemplo de AVL
-2 -1 6 1 -1 2 -1 0 4 0 3 8 0 7 2 1 0 1 0 3 4 0 7 6 0 8

Slo el rbol de la izquierda es AVL. El de la derecha viola la condicin de equilibrio en el nodo 6, ya que su subrbol izquierdo tiene altura 3 y su subrbol derecho tiene altura 1.

Equilibrio.
Equilibrio (n) = altura-der (n) altura-izq (n) describe relatividad entre subrbol der. y subrbol izq. + (positivo) der. mas alto (profundo). - (negativo) izq. mas alto (profundo).

Un rbol binario es un AVL si y slo si cada uno de sus nodos tiene un equilibrio de 1, 0, + 1

Si alguno de los pesos de los nodos se modifica en un valor no vlido (2 o -2) debe seguirse un esquema de rotacin.

Insertar Balancear
Caso 1 Caso 2 Caso 3 Caso 4 Rotacin simple izquierda RSI Rotacin simple derecha RSD Rotacin doble izquierda RDI Rotacin doble derecha RDD

Eliminar Calcular Altura

insertar
Usamos la misma tcnica para insertar un nodo en un ABB ordenado trazamos una ruta desde el nodo raiz hasta un nodo hoja (donde hacemos la insercin). Insertamos el nodo nuevo. Volvemos a trazar la ruta de regreso al nodo raz, ajustando el equilibrio a lo largo de ella. Si el equilibrio de un nodo llega a ser + - 2, volvemos a ajustar los subrboles de los nodos.

INSERTAR
Caso 1: Rotacin simple izquierda RSI Si esta desequilibrado a la izquierda y su hijo derecho tiene el mismo signo (+) hacemos rotacin sencilla izquierda.

Balancear
Caso 2: Rotacin simple derecha RSD Si esta desequilibrado a la derecha y su hijo izquierdo tiene el mismo signo (-) hacemos rotacin sencilla derecha. Ejemplo 1

40

Balancear
Caso 2: Rotacin simple derecha RSD

Ejemplo 2
0

-1
0

D
41

Rotacin simple izquierda o derecha.


Hay varios puntos que cabe sealar aqu:
Se conserva el orden apropiado del rbol. Restablece todos los nodo a equilibrios apropiados AVL Conserva el recorrido en orden que el rbol anterior. Slo necesitamos modificar 3 apuntadores para lograr el nuevo equilibrio (con la de la raz)

Balancear
Caso 3: Rotacin doble izquierda RDI
Si est desequilibrado a la izquierda (FE < 1), y su hijo derecho tiene distinto signo (+) hacemos rotacin doble izquierda-derecha.

Ejemplo 1

Caso 3: Rotacin doble izquierda RDI Ejemplo 2

Caso 4: Rotacin doble derecha RDD


Si esta desequilibrado a la derecha y su hijo izquierdo tiene distinto signo () hacemos rotacin doble derechaizquierda.

Ejemplo 1

Caso 4: Rotacin doble derecha RDD Ejemplo 2

Eliminar
Al eliminar un nodo en un rbol AVL puede afectar el equilibrio de sus nodos. Entonces hay que hacer rotaciones simples o dobles. Eliminas un nodo como lo hacemos en un rbol binario ordenado. Al localizar el nodo que queremos eliminar seguimos este procedimiento:

Caso 1: si el nodo a extraer es una hoja simplemente se elimina del rbol.


Se elimina el nodo b, su raz es e y tiene grado cero, no hay necesidades de rotacin, dado que ningn nodo ha transgredi la norma dada.

Caso 2: si el nodo a extraer tiene un solo hijo, el nodo hijo sustituye al padre
y se elimina el padre
Se elimina el nodo p, dado que tiene un solo hijo, es sustituido por si nodo hijo y se elimina el nodo padre, quedando un rbol equilibrado.

Caso 3: si el nodo contiene dos hijos, se mira su factor de equilibrio de forma


si es 1 se debe buscar el menor nodo del rbol izquierdo, sustituir el nodo a eliminar por este de forma que siga siendo un rbol binario de bsqueda. Se elimina el nodo g, para lograr esto es necesario buscar el menor elemento del rbol izquierdo, esto dado que el lado de mayor altura es el izquierdo y es de all de donde se debe extraer para buscar el equilibrio en altura. No fue necesaria ninguna rotacin.

Caso 3: si el nodo contiene dos hijos, se mira su factor de equilibrio de


forma si es -1 se debe buscar el menor nodo del rbol derecho de forma que su contenido lo reemplace y se elimina la hoja. Nodo a ser eliminado m, dado que su factor de equilibrio es de -1, significa que se debe buscar el menor nmero nodo del lado derecho y se realiza la sustitucin y de esta manera el rbol queda equilibrado.

Caso 3: si el nodo contiene dos hijos, se mira su factor de equilibrio de


forma si que cuando es 0, normalmente se realiza el procedimiento con el subrbol de la derecha. Eliminar el nodo e. Tiene dos hijos y su factor de equilibrio es cero por tanto en el caso se tom el menor por la derecha y se coloc en lugar de e eliminando.

Tema 4: Arboles heap

Arboles Heap.

Contenido

Definicin de rbol Heap. Ejemplificacin del rbol heap. Fila de prioridad. Caractersticas.

Categoras.
ImplementacinOperaciones bsicas y adicionales . Ejemplificar, Insertar , eliminar y heapsort.

Como disear el TDA correspondiente al rbol heap.

Qu es un rbol heap?
rbol heap

Bsicamente, un heap es un rbol binario casi completo. Se le considera casi completo ya que se llena en todos sus niveles, excepto, probablemente, el ultimo que se va completando izquierda a derecha. La diferencia entre el rbol binario y heap es que en el segundo, cada nodo tiene un valor menor o igual (o bien mayor o igual) que el valor asociado a cada uno de sus hijos, lo que se conoce como condicin del heap.

Analicemos los siguientes casos:

Cola (fila) de prioridad


Una cola de prioridad es aquella estructura de datos apropiada cuando una tarea es ms importante de localizar y / o eliminar a el elemento con valor menor de la coleccin.

Existen varias posibilidades de implementar una cola de prioridad:

1- Utilizar una lista al inicio.


2. Utilizar una lista ordenada. 3. rbol binario de bsqueda.
Cmo se utiliza cola priorizada? una estructura Heap en una

caractersticas

Todos los heaps son rboles binarios. El rbol est completamente balanceado excepto el ltimo nivel, que debe estar lleno de izquierda a derecha. Para un elemento del heap en la posicin i, sus hijos debern estar en las posiciones 2i y 2i+1 del heap. Un HEAP puede representarse en un arreglo.

Toda lista ordenada es un heap.

Categoras de un rbol heap


Existen tres categoras de un rbol heap: Max heap, min heap y min-max heap

Max Heap

Min Heap

Min-Max Heap

implementacin

Un heap no admite huecos, cada nivel se va llenando de izquierda a derecha. Hay una secuencia. Podramos numerar cada nodo en el orden de llenado.

Si lo vemos as, dado un ndice podemos conocer los ndices de los hijos y el padre de un nodo.
Ejemplo: del nodo 2, hijos 8 y 9, padre 6. 1. A [ 1 ] contiene la raz. 2. Si 2i n entonces A[ 2i ] contiene al hijo izquierdo del elemento en A[ i ]y si 2i + 1 n entonces A[ 2i + 1 ] contiene al hijo derecho de A[ i ] 3. Si i 2 entonces A[ i / 2 ] contiene al padre de A[i]

Reglas para representar un heap en un vector:


Las reglas anteriores implican que los elementos del heap se ubican en posiciones consecutivas del vector, colocando la raz en la primera posicin y recorriendo el rbol por niveles, de izquierda a derecha.

Operaciones bsicas y adicionales


En resumen las operaciones serian las siguientes: Operaciones bsicas del rbol heap: - Desencolar ( Eliminar ) - Encolar ( Insertar ) - HeapSort -Crear el heap: Operaciones Adicionales: - Ajustar - Construir heap - Pos izquierda - Pos derecha - Pos padre

Para inicializar - Tipo de orden - Si esta vaco

crear
N elementos en el arreglo o nodo (que se pueden enumerar).

{015}

Ejemplo del como se lleva acabo una insercin Heap Dado un arreglo con n elementos: A= { 33,60,5,15,25,12,45,70,35,7 }
60 33 33 60 33 a) Se inserta 33 60 33 5 15 d) Se Insertar 15 b) Se inserta 60

Insertar
60

33

c) Se Insertar 5 60

60 33
25

5
15

33
25

5 12 12 5

15

e) Se Insertar 25

60 33 15 25 5 45 12 12 45 33 15 60 33 25

70 60 12 5 45 15 h) Se inserta 70 35 33 35 33 60 25

70 45

12

70 15
g) Se inserta 45

Al final, el elemento con la llave ms alta quedar como la raz de la estructura max heap.
70 60 35 15 33 25 5 45 12

Eliminar
Cuando se necesita eliminar un elemento de la estructura max heap se toma de la raz root del heap.
Eliminar elemento 21 21 15 14 20 15 14 10 b) 2 20 14 15 10 c) 20

10
a)

Algoritmo heapsort

Este algoritmo consiste en almacenar todos los elementos del vector a ordenar en un montculo (heap), y luego extraer el nodo que queda como nodo raz del montculo (cima) en sucesivas iteraciones obteniendo el conjunto ordenado. Basa su funcionamiento en una propiedad de los montculos, por la cual, la cima contiene siempre el menor elemento (o el mayor, segn se haya definido el montculo) de todos los almacenados en l.

Cmo disear el tda que corresponde al rbol heap?


En el diseo del TDA para un heap se debe considerar que los elementos que se almacenaron deben poseer la propiedad de ordenamiento, es decir, tener una relacin de mayor qu y menor que. Se considera lo siguiente: - Arreglo - Estructura Operaciones: - Crear Heap - HeapSort - Insertar - Borrar

A continuacin el TDA correspondiente

Diseo del TDA


DESCRIPCION DE LOS ELEMENTOS TDA Identificadores Limite Rango Organizacin Arbol Heap(Estatica) Arreglo de elementos de tipo entero. Tamao del arreglo. Capacidad del arreglo (tamao). Conjunto de los nmeros enteros. jerarquica

DESCRIPCION DE LAS OPERACIONES IDENTIFICADOR ENTRADAS SALIDAS OBJETIVO PRECONDICION POSCONDICION DESCRIPCION Crear Total de elementos que se almacenaran en el arreglo Mensaje de xito o fracaso de la operacin Inicializar la estructura de datos sinttica Conocer el total de elementos Realizar operaciones con la estructura/cancelacin de la operacin 1. Solicitar la memoria para crear la estructura de datos. 2. Verificar que la solicitud de memoria se realice de forma correcta para continuar o cancelar la operacin 3. Inicializar la estructura de datos

IDENTIFICADOR ENTRADAS SALIDAS OBJETIVO PRECONDICION POSCONDICION DESCRIPCION

Insertar Dato que se almacenara en el rbol heap. Mensaje de xito o fracaso de la operacin Almacenar un elemento en el rbol heap. Crear la estructura Realizar operaciones con la estructura/cancelacin de la operacin 1. Verificar si hay espacio disponible en el arreglo para continuar o cancelar la operacin. 2. Aadir el dato solicitado 3. comparamos el elemento a insertar (incluido en la primera posicin libre) con su padre. Si el hijo es menor que el padre, entonces el elemento es insertado correctamente, si ocurre lo contrario sustituimos el hijo por el padre.
Eliminar Ninguna Mensaje de xito o fracaso de la operacin Extraer un elemento del rbol heapNinguna Realizar las operaciones con la estructura/ cancelacin de la operacin 1. 2. 3. 4. Verificar que exista un dato para continuar o cancelar la operacin Eliminar el elemento mximo (colocado en la raz). Hemos de subir el elemento que se debe eliminar, para cumplir la condicin de montculo a la raz, que ha quedado vaca. Una vez hecho esto queda el ltimo paso el cual es ver si la raz tiene hijos mayores que ella si es as, aplicamos la condicin y sustituimos el padre por el mayor de sus progenitores.

IDENTIFICADOR ENTRADAS SALIDAS OBJETIVO PRECONDICION POSCONDICION DESCRIPCION

IDENTIFICADOR ENTRADAS SALIDAS OBJETIVO PRECONDICION POSCONDICION DESCRIPCION

HeapSort Ninguna Datos ordenados en un rbol heap. almacenar todos los elementos del vector a ordenar en un montculo (heap), y luego extraer el nodo que queda como nodo raz del montculo (cima) Ninguna Realizar operaciones con la estructura 1. Saca el valor mximo del Heap. (El de la posicin 1). 2. Ocupa el espacio vaco el valor siguiente ya sea menor o mayor dependiente de la estructura seleccionada. 3. Reconstruir el Heap con un elemento menos.

Tema 5 arboles b, arboles b+

Por qu se le llaman arboles b?


Los rboles-B no soy llamados as por que sean Binarios, Tampoco es porque sean rboles de bsqueda, ya que en ingls se denominan B-trees.(B-Arboles)

La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa "Boeing

Definicin de rbol b

Un rbol B de orden p es bsicamente un rbol de bsqueda n-ario donde los nodos tienen p hijos como mximo, y en el cual se aade la condicin de balanceo de que todas las hojas estn al mismo nivel. Un rbol B de orden p, siendo p un entero mayor que 2, es un rbol con las siguientes caractersticas:

Cada nodo tiene como mximo M hijos. Cada nodo (excepto raz y hojas) tiene como mnimo (M+1)/2 claves.

La raz tiene al menos 2 hijos si no es un nodo hoja.


Todos los nodos hoja aparecen al mismo nivel. Un nodo no hoja con k hijos contiene k-1 elementos almacenados.

Los hijos que cuelgan de la raz (r1, , rm) tienen que cumplir ciertas condiciones:
El primero tiene valor menor que r1. El segundo tiene valor mayor que r1 y menor que r2, etc. El ltimo hijo tiene valor mayor que rm

Estructura del rbol B

Diferencia del rbol de bsqueda binaria:

Los rboles B se encuentran comnmente en las implementaciones de bases de datos y sistemas de archivos. Son rboles balanceados de bsqueda en los cuales cada nodo puede poseer ms de dos hijos.

Insercin de elementos en rboles b


Adems de mantener la estructura de rbol de bsqueda, el procedimiento de insercin en un rbol B debe asegurar la propiedad que impone que todas las hojas estn al mismo nivel. La nueva entrada debe insertarse siempre en un nodo hoja. Si hay espacio en la hoja corresponde, el elemento se puede insertar directamente.

Todas las inserciones se hacen en los nodos hoja.

Realizando una bsqueda en el rbol, se halla el nodo hoja en el cual debera ubicarse el nuevo elemento.
Si el nodo hoja tiene menos elementos que el mximo nmero de elementos legales, entonces hay lugar para uno ms. Inserte el nuevo elemento en el nodo, respetando el orden de los elementos. De otra forma, el nodo debe ser dividido en dos nodos. La divisin se realiza de la siguiente manera:

Se escoge el valor medio entre los elementos del nodo y el nuevo elemento. Los valores menores que el valor medio se colocan en el nuevo nodo izquierdo, y los valores mayores que el valor medio se colocan en el nuevo nodo derecho; el valor medio acta como valor separador. El valor separador se debe colocar en el nodo padre, lo que puede provocar que el padre sea dividido en dos, y as sucesivamente.

Ejemplos:

ELIMINACIN EN UN RBOL B
Igual que la insercin en un rbol B hace uso de la particin de un nodo en dos, la eliminacin se caracteriza por el proceso de unin de dos nodos en uno nuevo, en caso de que el nodo se vaci hasta menos de la mitad. No obstante, hay que tener en cuenta todas las situaciones que pueden ocurrir en la supresin.

Ejemplos:

Definicin de rbol B+
Los arboles B+ son una variante de los arboles B, que se utiliza en representacin de diccionarios. La estructura de los nodos hoja es distinta de la de los nodos internos. En esencia, la modificacin consiste en que en los nodos internos solo aparecen claves, mientras en los nodos hoja aparecen las asociaciones (clave, valor).

La principal caracterstica de estos arboles es que todas las claves se encuentran en las hojas y por lo tanto cualquier camino desde la raz hasta alguna de las claves tienen la misma longitud.

Es de notar que los arboles-B+ ocupan un poco mas de espacio que los arboles-B, y esto ocurre al existir duplicidad en algunas claves. Sin embargo, esto es aceptable si el archivo se modifica frecuentemente, puesto que se evita la operacin de reorganizacin del rbol que es tan costosa en los arboles-B. Formalmente se define un rbol-B+ de la siguiente manera: Cada pagina, excepto la raz, contiene entre d y 2d elementos. Cada pagina, excepto la raz, tiene entre d + 1 y 2d + 1 descendientes. Se utiliza m para expresar el numero de elementos por pagina. La pagina raz tiene al menos dos descendientes. Las paginas hojas estn todas al mismo nivel. Todas las claves se encuentran en las paginas hojas. Las claves de las paginas raz e interiores se utilizan como ndices. Bsqueda De Arboles-B+

La operacin de bsqueda en rboles-B+ es similar a la operacin de bsqueda en rboles-B. El proceso es simple, sin embargo puede suceder que al buscar una determinada clave la misma se encuentra en una pagina raz o interior, en dicho caso no debe detenerse el proceso, sino que debe continuarse la bsqueda con la pagina apuntada por la rama derecha de dicha clave.

Insercin de elementos en Arboles B+


El proceso de insercin en rboles-B+ es relativamente simple, similar al proceso de insercin en rboles-B. La dificultad se presenta cuando desea insertarse una clave en una pagina que se encuentra llena ( m = 2d ). En este caso, la pagina afectada se divide en 2, distribuyndose las m + 1 claves de la siguiente forma: " las d primeras claves en la pagina de la izquierda y las d + 1 restantes claves en la pagina derecha ". Una copia de la clave del medio sube a la pagina antecesora.

a) Antes de insertar la clave. b)Despus de insertarla.

Eliminacin en un rbol B+
La operacin de borrado en rboles-B+ es mas simple que la operacin de borrado en rboles-B. Esto ocurre porque las claves a eliminar siempre se encuentran en las paginas hojas. En general deben distinguirse los siguientes casos:

1. Si al eliminar una clave, m queda mayor o igual a d entonces termina la operacin de borrado. Las claves de las paginas raz o internas no se modifican por mas que sean una copia de la clave eliminada en las hojas.

a) Antes de eliminar la clave. b) Despus de eliminarla.

Tema: rboles 2-3

Que son los rboles 2-3?


Un rbol 2-3 es un tipo de rbol en la estructura de datos que permite un mejor ordenamiento, simplificando la insercin y eliminacin de datos. En donde se tienen dos propiedades bsica: Los nodos pueden tener 2 o 3 hijos (2-nodo o 3-nodo). Todas las hojas estn en el mismo nivel. La raz izquierda de cada nodo (elemento izquierdo) debe ser menor a la raz derecha (elemento derecho). No existen elementos repetidos en el rbol.
50 90

20

70

120

150

10

30

40

60

80

100 110

130 140

160

CARACTERSTICAS:
Un rbol 2-3 permite que un nodo contenga 2 o 3 hijos. Esta caracterstica le permite conservar el balanceo tras insertar o borrar un elemento.
Puede tener una de las siguientes dos formas:

X,Y

I I<X<D

M I<X<M<Y<D

Insercin Directa
Ejemplo: Se tiene el rbol A y se desea insertar un nuevo elemento con un valor de 39.
39<50?
39<30? 39>30? 39<40?
30

A) 39
50

Al nodo le queda espacio por lo tanto el elemento se ingresa en este nodo

39

70 90

10 20

39 40 40 39

60

80

160

Insercin Creando Un Nuevo Nodo


Ejemplo 2: Ahora se desea insertar un nuevo elemento con valor 38.
38<50?
38<30? 38>30? 38<39?
30 39 30 El nodo 3(30) tiene la longitud de 1. y Como el nodo 7(70 90) tiene la longitud de 2. Entonces el elemento 39 pasa al nodo 3(30).

38

50

Y por ultimo el elemento 38 se inserta en el nuevo nodo 2

38

70 90

10 20

38

38

40 39 40

60

80

160

Como el nodo 1(10 20) tiene la longitud de 2 Como el nodo 2(39 40) tiene la longitud de 2 Se crea un nuevo nodo hijo del nodo 3(30)

El nodo donde se encuentra Z contiene dos elementos

El nodo donde se encuentra Z contiene un solo elemento.

El nodo donde se encuentra Z contiene un solo elemento.

El nodo donde se encuentra Z contiene un solo elemento.

El nodo donde se encuentra Z contiene un solo elemento.

Para eliminar hay dos formas de hacerlo la primera es Redistribuir los elementos y la otra es Uniendo los elementos esto seria de la siguiente manera:

Unin
Ejemplo 1: Eliminar el elemento 60.

Eliminamos el 60 70,90 90

Observaremos que el nodo desaparece y nuestro rbol esta desequilibrado.

60

70 80 80

160

Bajamos el 70 para que as se cumpla la condicin de tener por un solo elemento 2 hijos.

Redistribucin Ejemplo : Eliminar el elemento 60.

Eliminamos el 160

Lo que hacemos es subir el 70 como raz y bajamos el noventa al nodo vaco. 90 70

60 60 70

160 90

Tema 7: Arboles Rojo - Negro

Puede buscar, insertar y borrar en un tiempo, donde n es el nmero de elementos del rbol.

Insertar un nodo en el rbol Rojo-Negro.


El proceso de ingreso de un nodo en el rbol es inicialmente el que se realiza con los rboles binarios de bsqueda. El nuevo nodo es un nodo Rojo con dos hijos nodos externos y se coloca en reemplazo de uno de los nodos externos existentes en el rbol. Despus de la insercin se pueden presentar tres casos, que el rbol siga balanceado, que se necesite cambiar de color a algn nodo (re colorar) o que sea necesario algn proceso de rotacin para cumplir las reglas del rbol.
Cuando un padre y un hijo, ambos son del mismo color rojo, se necesita balancear el rbol, para lo cual se necesitan saber dos cosas: la primera es la localizacin del nodo hijo con respecto a su abuelo y el color del hermano de su padre.

Esquema de re coloracin.
La clave de este procedimiento es mantener el equilibrio en la altura negra de cada nodo. Dado que el padre y su hermano son rojos simplemente se cambian a negro y su abuelo se coloca en rojo.

Rotacin simple ms re coloracin.


Sucede cuando el hermano del padre es de color negro y el nodo a ser insertado se coloca por el lado izquierdo. En este caso solo es necesario hacer una rotacin simple del nuevo nodo insertado y una re coloracin que garantice la altura negra del rbol.

Rotacin doble ms re coloracin.


Cuando el nuevo nodo a ser insertado se coloca en el lado derecho del padre, se requiere realizar una rotacin doble y despus una re coloracin para garantizar el equilibrio del rbol y el cumplimiento de la altura negra.

Rotacin Doble DI mas re coloracin.


Nodo insertado por el lado izquierdo del padre, pero caso en el cual el padre no tiene hermano.

Crear un rbol Rojo-Negro dada la siguiente entrada. 13,5,18,10,16,27,9,38.


En el procedimiento de insercin, despus de cada nodo insertado se debe garantizar que se cumplen las reglas dadas que son: dos nodos rojos consecutivos no se permiten. La altura negra de un nodo seleccionado debe ser la misma por cualquiera de sus ramas o caminos.

Tema 8

grafos

Aplicacin de grafos
LA TEORA DE GRAFOS SE APLICA EN CAMPOS TAN DIVERSOS COMO LAS CIENCIAS SOCIALES, LINGSTICA, CIENCIAS FSICAS, INGENIERA DE LA COMUNICACIN, ETC. DESEMPEA UN PAPEL IMPORTANTE EN LA CIENCIAS DE LA CONMUTACIN, CONMUTACIN Y DISEO LGICO, INTELIGENCIA ARTIFICIAL, LENGUAJES FORMALES, GRFICOS POR COMPUTADORA, SISTEMAS OPERATIVOS, ESCRITURA DE COMPILADORES Y ORGANIZACIN Y RECUPERACIN DE INFORMACIN. SE USAN PARA MODELAR PROBLEMAS.

Aplicaciones de los grafos

LAS APLICACIONES MS IMPORTANTES DE LOS GRAFOS SON LAS SIGUIENTES: RUTAS ENTRE CIUDADES. DETERMINAR TIEMPOS MXIMOS Y MNIMOS EN UN PROCESO. FLUJO Y CONTROL EN UN PROGRAMA.

LOS SIETE PUENTES DE LA ISLA KUEIPHOF.


LA ISLA KUEIPHOF EN KOENIGSBERG (POMERANIA) EL RO QUE LA RODEA SE DIVIDE EN DOS BRAZOS. SOBRE LOS BRAZOS ESTABAN CONSTRUIDOS SIETE PUENTES Y PARA LOS HABITANTES ERA MOTIVO DE DISTRACCIN DESCUBRIR UN CAMINO DE MANERA QUE PUDIERAN REGRESAR AL PUNTO DE PARTIDA, DESPUS DE HABER CRUZADO POR LOS SIETE PUENTES PERO PASANDO SLO UNA VEZ POR CADA UNO DE ELLOS. LEONARDO EULER ESTUDI EL ASUNTO, REPRESENT LAS DISTINTAS ZONAS A, B, C Y D POR MEDIO DE PUNTOS, MIENTRAS QUE LOS PUENTES ESTABAN REPRESENTADOS POR LNEAS QUE UNAN ESTOS PUNTOS. A LA FIGURA LA LLAM GRAFO, A LOS PUNTOS LOS LLAM VRTICES Y A LAS LNEAS LAS DENOMIN ARISTAS.

EULER ESTUDI SI UNA FIGURA LINEAL SE PODA DIBUJAR CON UN SOLO TRAZO, SIN LEVANTAR EL LPIZ DEL PAPEL Y SIN PASAR DOS VECES POR EL MISMO SITIO. LLEG A LA SIGUIENTE CONCLUSIN:
1. ES IMPOSIBLE SI HAY MS DE DOS VRTICES IMPARES. 2. ES POSIBLE CUANDO: A) TODOS LOS VRTICES SON PARES Y EL PUNTO DE PARTIDA PUEDE SER CUALQUIERA. B) CUANDO NO HAY MS DE DOS VRTICES IMPARES Y EN ESTE CASO EL COMIENZO DEL RECORRIDO COMIENZA EN UNO DE ELLOS Y TERMINA EN EL OTRO.

UN GRAFO ES UN ESPACIO TOPOLGICO QUE SE ARMA A PARTIR DE UN CONJUNTO DISCRETO DE PUNTOS (LLAMADOS VRTICES), PEGANDO (ADJUNTANDO) COPIAS DEL INTERVALO UNITARIO REAL I (QUE FORMARAN LAS ARISTAS DEL GRAFO).

COROLARIO y cardinalidad
COROLARIO. TODO GRAFO TIENE UN NMERO PAR DE VRTICES DE GRADO IMPAR. CARDINALIDAD O GRADO.- LA CARDINALIDAD O GRADO DE UN VRTICE (V) DE UN GRAFO (G) ES IGUAL AL NMERO DE ARISTAS QUE INCIDEN EN EL VERTICE (V) Y SE DESIGNA COMO DEG(V).

ARISTA INCIDENTE
UNA ARISTA ES INCIDENTE A UN VRTICE SI STA LO UNE A OTRO VRTICE.

EL ARCO A, ES INCIDENTE EN A Y B.

Arista adyacente
VRTICE ADYACENTE. SI TENEMOS UN PAR DE VRTICES DE UN GRAFO (U, V) Y SI TENEMOS UN ARISTA QUE LOS UNE, ENTONCES U Y V SON VRTICES ADYACENTES Y SE DICE QUE U ES EL VRTICE INICIAL Y V EL VRTICE ADYACENTE.

Ciclo
UN CICLO ES UN CAMINO, ES DECIR UNA SUCESIN DE ARISTAS ADYACENTES, DONDE NO SE RECORRE DOS VECES LA MISMA ARISTA, Y DONDE SE REGRESA AL PUNTO INICIAL. UN CICLO HAMILTONIANO TIENE ADEMS QUE RECORRER TODAS LOS VRTICES.

ARISTAS MLTIPLES.
CUANDO EN LOS VERTICES O NODOS HAY MAS DE 1 ARISTA.

Tipos de grafos
EXISTEN DOS TIPOS DE GRAFOS LOS NO DIRIGIDOS Y LOS DIRIGIDOS.

NO DIRIGIDOS: SON AQUELLOS EN LOS CUALES LOS LADOS NO ESTN


ORIENTADOS (NO SON FLECHAS). CADA LADO SE REPRESENTA ENTRE PARNTESIS, SEPARANDO SUS VRTICES POR COMAS, Y TENIENDO EN CUENTA (VI,VJ)=(VJ,VI). FIGURAS 1 Y 2.

DIRIGIDOS: SON AQUELLOS EN LOS CUALES LOS LADOS ESTN


ORIENTADOS (FLECHAS). CADA LADO SE REPRESENTA ENTRE NGULOS, SEPARANDO SUS VRTICES POR COMAS Y TENIENDO EN CUENTA <VI ,VJ>!=<VJ ,VI>. EN GRAFOS DIRIGIDOS, PARA CADA LADO <A,B>, A, EL CUAL ES EL VRTICE ORIGEN, SE CONOCE COMO LA COLA DEL LADO Y B, EL CUAL ES EL VRTICE DESTINO, SE CONOCE COMO CABEZA DEL LADO. FIGURA 3

GRAFO DIRIGIDO
UN GRAFO DIRIGIDO (V,E) CONSISTE DE UN CONJUNTO DE VRTICES V Y UN CONJUNTO DE ARISTAS E QUE SON PAREJAS ORDENADAS DE ELEMENTOS DE V. EJEMPLO: UNA RED DE COMPUTADORES COMUNICADOS POR LNEAS TELEFNICAS, DONDE SE DEFINE LA DIRECCIN DE LA COMUNICACIN.

Grafo simple
UN GRAFO SIMPLE G=(V,E) CONSISTE DE V, UN CONJUNTO NO VACO DE VRTICES, Y E, UN CONJUNTO DE PAREJAS NO ORDENADAS DE ELEMENTOS DISTINTOS DE V LLAMADAS ARISTAS. EJEMPLO: UNA RED DE COMPUTADORES COMUNICADOS POR LNEAS TELEFNICAS, DONDE HAY MXIMA UNA LNEA ENTRE UN PAR DE COMPUTADORES, LAS LNEAS OPERAN EN AMBOS SENTIDOS Y NO HAY UNA LNEA DE UN COMPUTADOR A SI MISMO.

SEA G=(V,E) UN GRAFO , UN SUBGRAFO DE G ES CUALQUIER GRAFO H=(V(H),E(H)), DE MODO QUE V(H) EST CONTENIDO EN V Y E(H) EST CONTENIDO EN E. UN SUBGRAFO SE OBTIENE ELIMINANDO ALGUNA(S) ARISTA(S) Y/O VRTICE(S). SI SE SUPRIME UN VRTICE, SE SUPRIMEN TODAS LAS ARISTAS QUE TIENEN POR ORIGEN O FIN DICHO VRTICE.

SUBGRAFO

G ES UN SUBGRAFO DE G, AL SUPRIMIR EL VRTICE X Y LAS ARISTAS QUE LLEGAN A L.

GRAFO COMPLETO
UN GRAFO COMPLETO ES UN GRAFO SIMPLE EN EL QUE TODO PAR DE VRTICES EST UNIDO POR UNA ARISTA. (SE REPRESENTA CON KN AL GRAFO COMPLETO DE N VRTICES). DICHO DE OTRA MANERA UN GRAFO ES COMPLETO SI CADA VRTICE TIENE UN GRADO IGUAL A N-1, DONDE N ES EL NMERO DE VRTICES QUE COMPONEN EL GRAFO.

GRAFO plano
UN GRAFO SE DICE QUE ES REGULAR, SI TODOS LOS VRTICES TIENEN EL MISMO GRADO.

GRAFO BIPARTITO
ES AQUEL CON CUYOS VRTICES PUEDEN FORMARSE DOS CONJUNTOS DISJUNTOS DE MODO QUE NO HAYA ADYACENCIAS ENTRE VRTICES PERTENECIENTES AL MISMO CONJUNTO.

UN GRAFO BIPARTITO COMPLETO


SE DENOTA KM,N DONDE M, N ES EL GRADO DE CADA CONJUNTO DISJUNTO DE VRTICES.

Grafo en rueda
CONSIDEREMOS EL GRAFO RN, QUE LLAMAREMOS GRAFO RUEDA, QUE TIENE N + 1 VRTICES. VEMOS INMEDIATAMENTE QUE EL VRTICE CENTRAL ES ESPECIAL.

ISOMORFISMO DE GRAFOS
EL GRAFO SIMPLE G1=(V1,E1) Y G2=(V2,E2) SON ISOMORFICOS SI HAY UNA FUNCIN (SE DICE DE LAS APLICACIONES DE UN CONJUNTO EN OTRO CUYA CORRESPONDENCIA INVERSA ES TAMBIN UNA APLICACIN) F DESDE V1 A V2 CON LA PROPIEDAD QUE A Y B SON ADYACENTES EN G1 SI Y SOLO SI F(A) Y F(B) SON ADYACENTES EN G2, PARA TODO A Y B EN V1. TAL FUNCIN F ES LLAMADA UN ISOMORFISMO.

Representacin de Grafos en Memoria


Aunque en general al representar datos de la vida real mediante un grafo los vrtices suelen llevar asociada informacin, en lo que sigue supondremos que esa informacin se almacena en una lista indexada y por lo tanto podemos hacer referencia a los vrtices utilizando nicamente el ndice donde estn almacenados en esa lista. En lo que sigue las representaciones hacen referencia nicamente a la manera de almacenar las aristas. Las dos representaciones principales de grafos son las siguientes: Matriz de Adyacencia (MA): Lista de Adyacencia (LA):

Você também pode gostar