You are on page 1of 16

UNIVERSIDAD AUTONOMA DE

CHIHUAHUA
Facultad de Ingeniera

rboles y Grafos
Estructura de Datos I
Ing. Vctor Domnguez Ros

281792

Quiroz

Cruz

Samantha Paola
286029
Guillermo

Lpez

Chvez

ndice
Introduccin
Objetivo

2
3

Grafos

Arboles

Conclusin

15

Bibliografa

15

Introduccin:
La investigacin se realiz con base al tema central que son las estructuras no
lineales las cuales esta divididas en rboles y grafos. Los arboles representan
las estructuras no lineales y dinmicas de datos ms importantes en
computacin. Son dinmicas porque la estructura rbol puede cambiar durante
la ejecucin de un programa, y no lineales porque a cada elemento del rbol
pueden seguirle varios elementos, a su vez los grafos son un conjunto de
nodos. Los conceptos previamente citados sern descritos ms detalladamente
a continuacin.

35

Grafos
Un grafo G=(N, A, F) consta de un conjunto no vaco n denominado
conjunto de nodos (puntos, vrtices) del grafo un conjunto a de aristas
del grafo, y una correspondencia f del conjunto de aristas a en un
conjunto de pares ordenados o desordenados n.

Bucle, ciclo, trayectorias, longitud


a) Bucle: En programacin, un bucle es un tipo de estructura de
control que permite repetir una o ms sentencias mltiples veces.
b) Ciclo: Los ciclos son tambin llamados iteraciones, se usan en
programacin para ejecutar el mismo conjunto de instrucciones
hasta que se cumpla cierta condicin.
c) Trayectorias: Si en un grafo simple se van recorriendo
sucesivamente sus aristas de modo tal que dos sucesivas sean
adyacentes, es decir que concurran al mismo vrtice por el que se
pasa de una a la otra, se est recorriendo o determinando una
trayectoria o camino.
d) Longitud: En Teora de Grafos, se llama Camino a una secuencia
de vrtices dentro de un grafo tal que exista una arista entre cada
vrtice y el siguiente. Se dice que dos vrtices estn conectados si
existe un camino que vaya de uno a otro, de lo contrario estarn
desconectados.
Grafos dirigidos.
Un grafo dirigido o dgrafo es un tipo de grafo en el cual
las aristas tienen una direccin definida, a diferencia del grafo
generalizado, en el cual la direccin puede estar especificada o no.
Al igual que en el grafo generalizado, el grafo dirigido est definido
por un par de conjuntos

, donde:

, un conjunto no
llamados vrtices o nodos.

ordenados de

vaco

de

objetos

simples

es un conjunto de pares
elementos
de

denominados aristas o arcos, donde por definicin un arco va


del primer nodo (a) al segundo nodo (b) dentro del par.

Grado interno y grado externo.


Si R es una relacin sobre un conjunto A y pertenece A, entonces el grado

45

interno de a (relativo a la relacin R) es el nmero de b pertenece A tal


que (b, a) pertenecen a R. El grado externo de a es el nmero de b
pertenece A tal que (a, b) pertenecen a R.
Representacin en memoria.
La Lista Lineal es una estructura dinmica, donde el nmero de nodos en una
lista puede variar a medida que los elementos son insertados y removidos, el
orden entre estos se establece por medio de un tipo de datos denominado
punteros, apuntadores, direcciones o referencias a otros nodos, es por esto que
la naturaleza dinmica de una lista contrasta con un arreglo que permanece en
forma constante.
Los nodos, en forma general, constan de dos partes: el campo informacin y el
campo liga. El primero contendr los datos a almacenar en la lista; el segundo
ser un puntero empleado para enlazar hacia el otro nodo de una lista.
Las operaciones ms importantes que se realizan en las estructuras de datos
Lista son las siguientes:
a) Bsqueda
b) Insercin
c) Eliminacin
d) Recorrido

Matriz de Adyacencias.
Un grafo se puede representar mediante una matriz. Es la forma ms sencilla
de representar un grafo. A esta matriz se le denomina matriz de adyacencia.

Esta matriz consiste en un arreglo


bidimensional de tamao n, donde n
es la mxima cantidad de nodos en el
grafo. Cada casilla de la matriz se carga
con valores verdadero V o falso F en
caso de que posea un camino de un
nodo o fila con columna. En caso de los
grafos no dirigidos la matriz ser simtrica.

Directorio de Nodo.
La representacin de listas solamente almacena la informacin de las aristas
que existen. Incluye dos partes: un directorio y un conjunto de listas ligada. Hay
una entrada en el directorio para cada nodo del grafo. La entrada del
directorio para el nodo i apunta a una lista ligada, que representa los nodos que
estn conectados al nodo i.

Cada registro de la lista ligada tiene dos campos: identificacin del nodo, liga al
siguiente elemento de la lista. El directorio representa nodos y la lista
representa aristas.
Multilistas
La implementacin de un grafo utilizando multilistas solo tiene sentido
para que grafos dirigidos. Su objetivo es mejorar el coste de la operacin

55

pred que pasa a tener coste (n) en lugar de coste (n+e) que tiene con
listas de adyacencia. Tambin se reduce (n) el coste de borrar- v.
Recorridos de Grafos
En muchas aplicaciones es necesario visitar todos los vrtices del grafo a partir
de un nodo dado. Algunas aplicaciones son:

Encontrar ciclos

Encontrar componentes conexas

Encontrar rboles cobertores

Hay dos enfoques bsicos:

Recorrido
(o
bsqueda)
en
profundidad:
La idea es alejarse lo ms posible del nodo inicial (sin repetir nodos),
luego devolverse un paso e intentar lo mismo por otro camino.

Recorrido
(o
bsqueda)
en
amplitud:
Se visita a todos los vecinos directos del nodo inicial, luego a los vecinos
de los vecinos, etc.

Recorrido en amplitud (BFS)


La implementacin es similar a la de DFS, pero se utiliza una cola en
lugar de una pila. El resultado es que los nodos se visitan en orden
creciente en relacin a su distancia al nodo origen.
Aplicaciones.
Los grafos se utilizan tambin para modelar trayectos como el de una
lnea de autobs a travs de las calles de una ciudad, en el que podemos
obtener caminos ptimos para el trayecto aplicando diversos algoritmos
como puede ser el algoritmo de Floyd. Par la administracin de
proyectos, utilizamos tcnicas como tcnica de revisin y evaluacin de
programas (PERT) en las que se modelan los mismos utilizando grafos y
optimizando los tiempos para concretar los mismos.
La teora de grafos tambin ha servido de inspiracin para las ciencias
sociales, en especial para desarrollar un concepto no metafrico de red
social que sustituye los nodos por los actores sociales y verifica la
posicin, centralidad e importancia de cada actor dentro de la red. Esta
medida permite cuantificar y abstraer relaciones complejas, de manera
que la estructura social puede representarse grficamente. Por ejemplo,
una red social puede representar la estructura de poder dentro de una
sociedad al identificar los vnculos (aristas), su direccin e intensidad y da
idea de la manera en que el poder se transmite y a quines.

65

Recorrido en Profundidad (DFS)


A medida que recorremos el grafo, iremos numerando correlativamente
los nodos encontrados (1,2,...). Suponemos que todos estos nmeros son
cero inicialmente, y utilizamos un contador global n, tambin inicializado
en cero.

Aplicaciones
Gracias a la teora de grafos se pueden resolver diversos problemas
como por ejemplo la sntesis de circuitos secuenciales, contadores o
sistemas de apertura. Se utiliza para diferentes reas por ejemplo, Dibujo
computacional, en todas las reas de Ingeniera. Los grafos se utilizan
tambin para modelar trayectos como el de una lnea de autobs a travs
de las calles de una ciudad, en el que podemos obtener caminos ptimos
para el trayecto aplicando diversos algoritmos como puede ser el
algoritmo de Floyd. Para la administracin de proyectos, utilizamos
tcnicas como tcnica de revisin y evaluacin de programas (PERT) en
las que se modelan los mismos utilizando grafos y optimizando los
tiempos para concretar los mismos. La teora de grafos tambin ha
servido de inspiracin para las ciencias sociales, en especial para
desarrollar un concepto no metafrico de red social que sustituye los
nodos por los actores sociales y verifica la posicin, centralidad e
importancia de cada actor dentro de la red. Esta medida permite
cuantificar y abstraer relaciones complejas, de manera que la estructura
social puede representarse grficamente. Por ejemplo, una red social
puede representar la estructura de poder dentro de una sociedad al
identificar los vnculos (aristas), su direccin e intensidad y da idea de la
manera en que el poder se transmite y a quines.
Alcance en Grafos.
Trabaja sobre grafos orientados si G es no orientado, se sustituye cada
arco.

Trayectoria ms corta.
Se conocen varios algoritmos de clculo de la trayectoria ms corta entre

75

dos nodos de un grafo. ste se debe a Dijkstra. Cada nodo se etiqueta


con su distancia al nodo origen a travs de la mejor trayectoria conocida.
Inicialmente no se conocen trayectorias, por lo que todos los nodos tienen
la etiqueta infinito.
A medida que avanza el algoritmo y se encuentra trayectorias, pueden
cambiar las etiquetas, reflejando mejores trayectorias. Una etiqueta puede
ser tentativa o permanente. Inicialmente todas las etiquetas son
tentativas. Al descubrirse que una etiqueta representa la trayectoria ms
corta posible del origen a ese nodo, se vuelve permanente y no cambia
ms.

rbol de expansin mnima.


Dada una grfica, su rbol mnimo generador (o rbol de peso mnimo o
rbol mnimo de expansin) es un rbol que pasa por todos los vrtices y
que la suma de sus aristas es la de menor peso. La forma inmediata en
que se nos puede ocurrir para encontrarlo es mediante una bsqueda
exhaustiva, sin embargo, podemos encontrarlo ms rpido.
De forma similar al problema de la distancia ms corta, el rbol mnimo
generador puede ser calculado mediante un enfoque vido. La idea
bsica es empezar con el rbol vaco e irle agregando una arista a la vez.
La arista que escogemos es la de menor costo que no forme un ciclo en
nuestro rbol. Despus de agregar V-1 aristas, el rbol que tenemos es el
rbol mnimo generador. Con esta idea surgen dos algoritmos: Prim y
Kruskal, cuya diferencia bsica es la forma en que encontremos la arista
que vamos a agregar.

85

Arboles.
Un rbol es una estructura de datos ramificada (no lineal) que puede
representarse como un conjunto de nodos enlazados entre s por medio de
ramas. La informacin contenida en un nodo puede ser de cualquier tipo simple
o estructura de datos.
Los rboles permiten modelar diversas entidades del mundo real tales como, por
ejemplo, el ndice de un libro, la clasificacin del reino animal, el rbol
genealgico de un apellido, etc.
La figura muestra un ejemplo de estructura en rbol (la numeracin de los
nodos es arbitraria). Se entiende por topologa de un rbol a su representacin
geomtrica.
1
2
5
10

3
6

8
11

12

Figura 4.1
Una definicin formal es la siguiente:
Un rbol es una estructura de datos base que cumple una de estas dos
condiciones:
Es una estructura vaca, o
Es un nodo de tipo base que tiene de 0 a N subrboles disjuntos entre s.
Al nodo base, que debe ser nico, se le denomina raz y se establece el
convenio de representarlo grficamente en la parte superior.
En un rbol se representa una relacin jerrquica a partir del nodo raz en
sentido vertical descendente, definiendo niveles1.
El nivel del nodo raz es 1.
Desde la raz se puede llegar a cualquier nodo progresando por las ramas y
atravesando los sucesivos niveles estableciendo as un camino. En la figura 4.1.
El nodo 7 est a nivel 3 y la secuencia de nodos 4, 8 y 11 constituye un
(sub)camino.
Se dice que un nodo es antecesor de otro cuando ambos forman parte de un
camino y el primero se encuentra en un nivel superior (numeracin ms baja) al
del segundo (numeracin ms alta). En el ejemplo anterior el nodo 4 es
antecesor del 11. Por el contrario, el nodo 11 es descendiente del 4.La relacin
entre dos nodos separados de forma inmediata por una rama se denomina
padre/hijo. En el ejemplo de la figura 4.1., el nodo 5 es hijo del nodo 2 y,
recprocamente, el nodo 2 es padre del nodo 5. En un rbol un padre puede
tener varios hijos pero un hijo solo puede tener un padre.

95

Se denomina grado al nmero de hijos de un nodo. Por ejemplo, en la figura 4.1.


El nodo 4 tiene grado 3 y el nodo 7 tiene grado 0.
Se dice que un nodo es hoja cuando no tiene descendientes (grado 0).
Se establecen los siguientes atributos para un rbol:
Altura / profundidad / nivel: La mayor altura / profundidad / nivel de sus
nodos. La altura del rbol de la figura 4.1. Es 4 (la alcanzan sus nodos 10,
11 y 12).
Amplitud / Anchura: El nmero de nodos del nivel ms poblado.
Grado: el mayor de los grados de los nodos.
Un rbol es un grafo conexo y a cclico (sin ciclos).
Para lograr el propsito del recorrido mnimo dentro de un grafo G, es
necesario para nuestro caso en particular (puesto que no es la nica tcnica
existente) la utilizacin del algoritmo de WARSHALL para el camino mnimo,
el cual se expresa de la forma siguiente:
Sea G un grafo con m nodos, u1 , u2 , ..., um suponga que queremos
encontrar la matriz de caminos P para el grafo G. WARSHALL dio un algoritmo
para este propsito que es mucho ms eficiente que calcular las potencias de la
matriz de adyacencia A y aplicar la proposicin:
Donde sea A la matriz de adyacencia y P = Pij la matriz de caminos de un grafo
G entonces, Pij = 1 si y solo s hay un nmero positivo en la entrada ij de la
matriz
Este algoritmo de WARSHALL se usa para calcular el camino mnimo y existe
un algoritmo similar para calcular el camino mnimo de G cuando G tiene peso.
Algoritmo de WARSHALL:
Un grafo dirigido G con M nodos est en memoria por su matriz adyacente A,
este algoritmo encuentra la matriz de caminos (Booleana) P del grafo G.

Bosques de rboles.
Hijo. X es hijo de y, s y solo s el nodo x es apuntado por y. Tambin
se dice que x es descendiente directo de y.
padre. X es padre de y s y solo s el nodo x apunta a y. Tambin se
dice que x es antecesor de y.
hermano. Dos nodos sern hermanos si son descendientes directos
de un mismo nodo.
hoja. Se le llama hoja o terminal a aquellos nodos que no tienen
ramificaciones.
nodo interior. Es un nodo que no es raz ni terminal.
grado. Es el nmero de descendientes directos de un determinado
nodo.
grado del arbol es el mximo grado de todos los nodos del rbol.
nivel. Es el nmero de arcos que deben ser recorridos para llegar a un
determinado nodo. Por definicin la raz tiene nivel 1.
altura. Es el mximo nmero de niveles de todos los nodos del rbol.

105

peso. Es el nmero de nodos del rbol sin contar la raz.


longitud de camino. Es el nmero de arcos que deben ser recorridos
para llegar desde la raz al nodo x. Por definicin la raz tiene longitud
de camino 1, y sus descendientes directos longitud de camino 2 y as
sucesivamente.

Orden de los nodos. Generalmente los rboles de un nodo se ordenan de


izquierda a derecha. Si no se toma en cuenta el orden de los nodos hijos,
entonces se habla de un rbol no ordenado.
Los bosques de rboles son un caso similar a los rboles, son a cclicos,
pero no son conexos. Un bosque es un grafo, o sea, una unin disjunta
de rboles.

Una hoja en un grafo es un vrtice de grado 1.


Un rbol generador de un grafo G es un subgrupo generador de G que
es un rbol.

Representacin de un rbol general


raz del rbol: Todos los rboles que no estn vacos tienen un nico nodo
raz. Todos los dems elementos o nodos se derivan o descienden de l.
El nodo raz no tiene padre, es decir, no es el hijo de ningn elemento.
nodo: son los vrtices o elementos del rbol.
nodo terminal u hoja: Es aquel que no contiene ningn subrbol.
A cada nodo que no es hoja se asocia uno o varios subrboles llamados
descendientes o hijos. De igual forma, cada nodo tiene asociado un
antecesor o ascendiente llamado padre.
Los nodos de un mismo padre se llaman Hermanos.
Los nodos con uno o dos subrboles no son hojas ni raz, se llaman
Nodos Interiores o Internos.
Una coleccin de dos o ms rboles se llama bosque.
Todos los nodos tienen un solo padre (excepto la raz) que no tiene padre.
Se denomina camino el enlace entre dos nodos consecutivos, y rama es
un camino que termina en una hoja.
Cada nodo tiene asociado un nmero de nivel que se determina por la
longitud del camino desde la raz al nodo especfico.
La altura o profundidad de un rbol es el nmero mximo de nodos de
una rama. Equivale al nivel ms alto de los nodos ms 1. El pero de un

115

rbol es el nmero de nodos terminales.

Recorrido de rboles.
El recorrido de rboles refiere al proceso de visitar de una manera sistemtica,
exactamente una vez, cada nodo en una estructura de datos de rbol.Una tarea
muy comn a realizar con un rbol es ejecutar una determinada operacin con
cada uno de los elementos del rbol. Esta operacin se considera entonces
como un parmetro de una tarea ms general que es la visita de todos los nodos
o, como se denomina usualmente, del recorrido del rbol.

Orden previo.
El recorrido en preorden, tambin llamado orden previo consiste en
recorrer en primer lugar la raz y luego cada uno de los
hijos
en orden previo.

125

Orden simtrico.
El recorrido en inorden, tambin llamado orden simtrico (aunque este
nombre slo cobra significado en los rboles binarios) consiste en
recorrer en primer lugar , luego la raz y luego cada uno de los
hijos
en orden simtrico.

Orden posterior.
El recorrido en postorden, tambin llamado orden posterior consiste en
recorrer en primer lugar cada uno de los hijos
en orden
posterior y por ltimo la raz.
Finalmente, puede decirse que esta estructura es una representacin del
concepto de rbol en teora de grafos. Un rbol es un grafo conexo y a
cclico.

Recorrido en forma recursiva.


El mtodo ms simple para recorrer los nodos de un rbol es
probablemente con una implementacin recursiva. Por ejemplo, el
siguiente programa visita los nodos de un rbol binario en orden.

135


rboles binarios.
A los arboles ordenados de grado dos se les conoce como arboles binarios ya
que cada nodo del rbol no tendr ms de dos descendientes directos. Las
aplicaciones de los arboles binarios son muy variadas ya que se les puede
utilizar para representar una estructura en la cual es posible tomar decisiones
con dos opciones en distintos puntos.
La representacin grfica de un rbol binario es la siguiente:

Definicin de rbol binario.


Un rbol ordenado es aquel en el cual la distribucin de las ramas sigue
cierto orden.
Los rboles ordenados de grado 2 son de especial inters puesto que
representan una de las estructuras de datos ms importante en
computacin, conocida como rboles binarios.

Conversin de rbol general a binario.


a) Enlazar los hijos de cada nodo en forma horizontal (los
hermanos).
b) Enlazar en forma vertical el nodo padre con el nodo hijo que se
encuentra ms a la izquierda. Adems, debe eliminarse el
vnculo de ese padre con el resto de sus hijos.
c) Rotar el diagrama resultante aproximadamente 45 grados hacia
la izquierda, y as se obtendr el rbol binario correspondiente.

05

CONCLUSION
Vimos en este trabajo la implementacin de grafos y arboles respecto a los
diversos fundamentos y aplicaciones asignadas en representacin de memoria
y aparte aprendimos a conocer y ver una visin general del proceso de
resolucin de problemas que tratan de la implementacin de conjuntos y
diccionarios ya que mediante mtodos, arboles de punteros, etc., pudimos
realizar esta meramente resultado de la investigacin.

BIBLIOGRAFIA
DEITEL, HARVEY M. & DEITEL, PAUL J.
Quinta edicin
Como programar en Java
PEARSON EDUCACION, Mxico 2004ISBN: 970-26-0518-0rea: Universitarios
Formato: 20 X 25.5 cm Pginas: 1268
LEWIS, J. Y CHASEJ.
Segunda edicin
Estructuras de datos con Java. Diseo de estructuras y algoritmos.
PEARSON AddisonWesley. 2006Pgs. 152-161, 166-174, 180-182, 193-205
TCNICO DE SOPORTE INFORMTICO GRUPO III
De la Comunidad de Castilla y Len. Volumen 1Editor: MAD
TEXTO GUA:
ALGORITMOS Y ESTRUCTURAS DE DATOS
Primera edicin, Junio 2003
(c) Gins Garca Mateos
Joaqun Cervera Lpez
Norberto Marn Prez
Domingo Gimnez Cnovas
(c) Editorial Diego Marn
Coleccin Textos-Gua
ICE - Universidad de Murcia
Nmero de pginas: 353

15

25