ARBOLES Y GRAFOS

Embed Size (px)

Citation preview

INDICE INDICE ARBOLES Y GRAFOS1.-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

1

ARBOLES Y GRAFOS ESTRUCTURAS NO LINEALES ARBOLES1.-INTRODUCCIONAl 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 ARBOLESDiferentes 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 GENERALUn 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

3

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

+ ABC

^/D

3.

4

rboles de expresin Representan un orden de ejecucin

+ +

*+ 12 9

*A B C

*

E D

7

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.

a1 2 34

5

b7

ed

68 9

c

fh i

g

rbol binario completo: Es un rbol en el que todos sus nodos, excepto los del ultimo nivel, tienen dos hijos.

5

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.

6

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.

7

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

8

En forma completa.

9

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)