You are on page 1of 16

Grafo [editar]

Artculo principal: Grafo

En la figura, V = { a, b, c, d, e, f }, y A = { ab, ac, ae, bc, bd, df, ef }.


Un grafo es una pareja de conjuntos G = (V,A), donde V es el conjunto de vrtices, y A
es el conjunto de aristas, este ltimo es un conjunto de subconjuntos de la forma (u,v)
tal que
ab.

, tal que

. Para simplificar, notaremos la arista {a,b} como

Definicin
Un grafo es un objeto matemtico que se utiliza para representar circuitos, redes,
etc. Los grafos son muy utilizados en computacin, ya que permiten resolver
problemas muy complejos.

Los grafos son la representacin natural de las redes, en las que estamos
cada vez ms incluidos. Exploramos qu son los grafos, para qu sirven y
algunas reglas para dibujarlos bien.

Caracterizacin de Grafos [editar]

Grafos Simples [editar]


Un grafo es simple si a lo sumo slo 1 arista une dos vrtices cualesquiera. Esto es
equivalente a decir que una arista cualquiera es la nica que une dos vrtices
especficos.
Un grafo que no es simple se denomina complejo.

Grafos Bipartitos [editar]


Artculo principal: Grafo bipartito

Un grafo G es bipartito si puede expresarse como


(es decir, sus
vrtices son la unin de dos grupos de vrtices), bajo las siguientes condiciones:

V1 y V2 son disjuntos y no vacos.


Cada arista de A une un vrtice de V1 con uno de V2.
No existen aristas uniendo dos elementos de V1; anlogamente para V2.

Bajo estas condiciones, el grafo se considera bipartito, y puede describirse


informalmente como el grafo que une o relaciona dos conjuntos de elementos
diferentes, como aquellos resultantes de los ejercicios y puzzles en los que debe unirse
un elemento de la columna A con un elemento de la columna B.

rboles [editar]
Artculo principal: rbol (teora de grafos)

Ejemplo de rbol.
Un grafo que no tiene ciclos y que conecta a todos los puntos, se llama un rbol. En un
grafo con n vrtices, los rboles tienen exactamente n - 1 aristas, y hay nn-2 rboles
posibles. Su importancia radica en que los rboles son grafos que conectan todos los
vrtices utilizando el menor nmero posible de aristas. Un importante campo de
aplicacin de su estudio se encuentra en el anlisis filogentico, el de la filiacin de
entidades que derivan unas de otras en un proceso evolutivo, que se aplica sobre todo a
la averiguacin del parentesco entre especies; aunque se ha usado tambin, por ejemplo,
en el estudio del parentesco entre lenguas.
rboles.
Un rbol se define como un tipo de grafo que no contiene ciclos, es decir es un
grafo tambin acclico, pero a su vez es conexo. Tal es el caso de los siguientes
dos grafos en donde se puede notar que ninguno de los dos contiene
repeticiones (ciclos).

Ciclo de un grafo.
Ciclo: Es una cadena finita donde el nodo inicial de la cadena coincide con el
nodo terminal de la misma.

Ciclo simple: Es el ciclo que a


su vez es una cadena simple.

GRAFO:
Los grafos son artefactos matemticos
que permiten expresar de una forma
visualmente muy sencilla y efectiva las
relaciones que se dan entre elementos de
muy diversa ndole.

La red de metro de Barcelona. Los


mapas de las lneas del ferrocarril
metropolitano son grafos que muestran
la conectividad de las estaciones.
Fuente: TMB (Transports
Metropolitans de Barcelona).
Pulse en la imagen para agrandarla.

Un grafo consiste de un conjunto V de vrtices (o nodos) y un conjunto E de


arcos que conectan a esos vrtices.
Ejemplos:

V={v1,v2,v3,v4,v5}
E={{v1,v2},{v1,v3},{v1,v5},
{v2,v3},{v3,v4},{v4,v5}}

V={v1,v2,v3,v4}
E={(v1,v2),(v2,v2),(v2,v3),
(v3,v1),(v3,v4),(v4,v3)}

Adems de esto, los grafos pueden ser extendidos mediante la adicin de


rtulos (labels) a los arcos. Estos rtulos pueden representar costos,
longitudes, distancias, pesos, etc.
Representaciones de grafos en memoria
Matriz de adyacencia
Un grafo se puede representar mediante una matriz A tal que A[i,j]=1 si hay
un arco que conecta vi con vj, y 0 si no. La matriz de adyacencia de un grafo no
dirigido es simtrica.
Una matriz de adyacencia permite determinar si dos vrtices estn conectados
o no en tiempo constante, pero requieren O(n2) bits de memoria. Esto puede
ser demasiado para muchos grafos que aparecen en aplicaciones reales, en
donde |E|<<n2. Otro problema es que se requiere tiempo O(n) para encontrar la
lista de vecinos de un vrtice dado.
Listas de adyacencia
Esta representacin consiste en almacenar, para cada nodo, la lista de los
nodos adyacentes a l. Para el segundo ejemplo anterior,
v1: v2

v2: v2, v3
v3: v1, v4
v4: v3

Esto utiliza espacio O(|E|) y permite acceso eficiente a los vecinos, pero no
hay acceso al azar a los arcos.
Caminos, ciclos y rboles
Un camino es una secuencia de arcos en que el extremo final de cada arco
coincide con el extremo inicial del siguiente en la secuencia.

Un camino es simple si no se repiten vrtices, excepto posiblemente el primero


y el ltimo.
Un ciclo es un camino simple y cerrado.

Un grafo es conexo si desde cualquier vrtice existe un camino hasta cualquier


otro vrtice del grafo.
Se dice que un grafo no dirigido es un rbol si es conexo y acclico.

Tipos de rboles binarios [editar]

Un rbol binario es un rbol con raz en el que cada nodo tiene como mximo
dos hijos.
Un rbol binario lleno es un rbol en el que cada nodo tiene cero o dos hijos.
Un rbol binario perfecto es un rbol binario lleno en el que todas las hojas
(vrtices con cero hijos) estn a la misma profundidad (distancia desde la raz,
tambin llamada altura)
A veces un rbol binario perfecto es denominado rbol binario completo. Otros
definen un rbol binario completo como un rbol binario lleno en el que todas
las hojas estn a profundidad n o n-1, para alguna n.
Un rbol casi-completo es un rbol en el que cada nodo que tiene un hijo
derecho tambin tiene un hijo izquierdo. Tener un hijo izquierdo no requiere que
un nodo tenga un hijo derecho. Dicho de otra forma, un rbol casi completo es
un rbol donde para un hijo derecho, hay siempre un hijo izquierdo.

Introduccin
Hoy en da podemos ver muchas cosas que nos pueden parecer de lo mas
cotidianas, carreteras, lneas telefnicas, lneas de televisin por cable, el
transporte colectivo metro, circuitos elctricos de nuestras casas, automviles, y
tantas cosas mas; lo que no pensamos frecuentemente es que estos forman parte
de algo que en matemticas se denomina como grafos.
En este trabajo se tratar de explicar lo que son los grafos, sus tipos, y algunas
derivaciones de ellos, as como su representacin grfica y en algunos casos, su
representacin en algn programa informtico, as como en la memoria.
En este trabajo, se explicando de manera muy sencilla los conceptos y algunas
metodologas con un lenguaje no tan rebuscado para su mayor entendimiento.

Los arboles representan las estructuras no lineales y dinmicas de datos ms importantes


en computacin . Dinmicas porque las estructuras de rbol pueden cambiar durante la
ejecucin de un programa. No lineales, puesto que a cada elemento del rbol pueden
seguirle varios elementos.
Los arboles pueden ser construidos con estructuras estticas y dinmicas. Las estticas
son arreglos, registros y conjuntos, mientras que las dinmicas estn representadas por
listas.
La definicin de rbol es la siguiente: es una estructura jerrquica aplicada sobre una
coleccin de elementos u objetos llamados nodos; uno de los 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, ansestro, etc.. Formalmente se define un
rbol de tipo T como una estructura homognea que es la concatenacin de un elemento
de tipo T junto con un nmero finito de arboles disjuntos, llamados subarboles. Una
forma particular de rbol puede ser la estructura vaca.

Composicin de los grafos


Un grafo es una estructura de datos compuesta por vrtices y arcos.
Grficamente un grafo se puede ver as:

Figura 7.1 Grafo


El conjunto de vrtices es: v = {A, B, C, D, E, F, G, H, I, J, K, L}
Un arco une dos vrtiGrafos no dirigidos En estos grafos, las aristas que

comunican dos nodos tienen dos sentidos. Si una arista va de x a y, la misma

Grafos no dirigibles
Grafos no dirigidos En estos grafos, las aristas que comunican dos nodos tienen
dos sentidos. Si una arista va de x a y, la misma arista va de y a x. Se expresa
grficamente por lneas. La representacin grfica de un grafo se define con un
crculo o rectngulo para los nodos y las relaciones con lneas o flechas segn
sea un grafo no dirigido o un dgrafo, respectivamente.

rboles Generales.
Un rbol general ( a veces es llamado rbol ) se define como un conjunto, finito
no vaci T de elementos, llamados nodos, tales que:
1. T contiene un elemento distinguido R, llamado raz de T.
2. Los restantes elementos de T forman una coleccin ordenada de cero o
mas rboles disjuntos T1, T2,.., Tm..
Figura (4)

rboles Binarios de bsqueda.

Definicin de rboles de bsqueda binaria


Un rbol es una estructura de datos recursiva que se puede caracterizar en forma
inductiva:
El rbol vaco es un rbol.
Un nodo del cual cuelgan uno ms rboles es un rbol.

Esta seccin discute una de las estructuras de datos ms importantes de la


informtica, el rbol binario de bsqueda. Esta estructura permite buscar y
encontrar un elemento con una media de tiempo de ejecucin f (n) = 0 ( log2 n),
tambin permite insertar y borrar elementos fcilmente. Esta estructura
contrasta con las siguientes estructuras:

a. Array lineal ordenado. Aqu se puede buscar y encontrar un elemento con


un tiempo de ejecucin f(n) = (log2n), pero es costoso el insertar y borrar
elementos.
b. Lista enlazada. Aqu se puede insertar y borrar elementos fcilmente,
pero es costoso el buscar y encontrar un elemento, ya que se debe usar
una bsqueda secuencial.
Aunque cada nodo de un rbol binario de bsqueda puede contener un
registroentero de datos, la definicin del rbol binario depende de un campo
dado cuyos valores son distintos y deben estar ordenados.
Supongamos que T es un rbol binario. Entonces T se dice que es un rbol
binario de bsqueda ( o rbol binario ordenado) si cada nodo N de T tiene la
siguiente propiedad: el valor de N es mayor que cualquier valor del subrbol
izquierdo de N y es menor que cualquier valor del subrbol derecho de N. ( no es
difcil ver que esta propiedad garantiza el recorrido inorden de T dar una lista
ordenada de los elementos de T) .

Conclusin.
De este trabajo se podra decir que un rbol binario se define como un conjunto
finito de elementos llamados nodos. En estos casos se puede usar terminologa
de relaciones familiares para descubrir las relaciones entre los nodos de un
rbol; y que un rbol puede ser implementado fcilmente en una computadora.
Es bueno hacer nfasis en esto ya que se puede saber mucho sobre lo que tiene
que ver con los rboles; entre las cosas que podemos mencionar se encuentra la
raz, los nodos de un rbol y la diferencia entre nodos sucesores y nodos
terminales, como se muestran en el contenido del trabajo.

rbol binario

En ciencias de la computacin, un rbol binario es una estructura de datos en el cual


cada nodo:

No tiene hijos (hoja).


Tiene un hijo izquierdo y un hijo derecho.
Tiene un hijo izquierdo.
Tiene un hijo derecho.

Usos comunes de los rboles binarios son los rboles binarios de bsqueda, los
montculos binarios y cdigo de huffman.

Recorrido en preorden [editar]


En este tipo de recorrido se realiza cierta accin (quizs simplemente imprimir por
pantalla el valor de la clave de ese nodo) sobre el nodo actual y posteriormente se trata
el subrbol izquierdo y cuando se haya concluido, el subrbol derecho. En el rbol de la
figura el recorrido en preorden sera: 2, 7, 2, 6, 5, 11, 5, 9 y 4.

void preorden(tArbol *a)


{
if (a != NULL) {
tratar(a);
preorden(a->hIzquierdo);
preorden(a->hDerecho);
}
}

//Realiza una operacin en nodo

Implementacin en pseudocdigo de forma iteratira:


push(s,NULL);
//insertamos en
para asegurarnos de que est vaca
push(s,raz);
MIENTRAS (s <> NULL) HACER
p = pop(s);
tratar(p);
nodo p
SI (D(p) <> NULL)
derecho
ENTONCES push(s,D(p));
FIN-SI
SI (I(p) <> NULL)
izquierdo
ENTONCES push(s,I(p));
FIN-SI

una pila (stack) el valor NULL,


//insertamos el nodo raz
//sacamos un elemento de la pila
//realizamos operaciones sobre el
//preguntamos si p tiene rbol

//preguntamos si p tiene rbol

FIN-MIENTRAS

Recorrido en postorden [editar]


En este caso se trata primero el subrbol izquierdo, despus el derecho y por ltimo el
nodo actual. En el rbol de la figura el recorrido en postorden sera: 2, 5, 11, 6, 7, 4, 9, 5
y 2.
void postorden(tArbol *a)
{
if (a != NULL) {
postorden(a->hIzquiedo);
postorden(a->hDerecho);
tratar(a);
}
}

//Realiza una operacin en nodo

RECORRIDOS DE UN RBOL.
En una estructura lineal resulta trivial establecer un criterio de movimiento por
la misma para acceder a los elementos, pero en un rbol esa tarea no resulta tan
simple.No obstante, existen distintos mtodos tiles en que podemos
sistemticamente recorrer todos los nodos de un rbol.Los tres recorridos ms
importantes se denominan preorden,inorden y postorden aunque hay otros
recorridos como es el recorrido por niveles.
Si consideramos el esquema general de un rbol tal como muestra la figura
siguiente,los recorridos se definen como sigue:

Arbol binario
Estructura recursiva, que consta de un elemento denominado raz , que contiene un
campo de informacin genrico y dos rboles binarios asociados, llamados subrbol
derecho y subrbol izquierdo.
Una de las ventajas de los arboles binarios, es la optimizacin de la bsqueda de
elementos, gracias a que usa una regla para insertar ordenadamente elementos.
Ejemplo:

Mtodos para almacenar rboles binarios [editar]


Los rboles binarios pueden ser construidos a partir de lenguajes de programacin de
varias formas. En un lenguaje con registros y referencias, los rboles binarios son
construidos tpicamente con una estructura de nodos Y punteros en la cual se almacenan
datos, cada uno de estos nodos tienen una referencia o puntero a un nodo izquierdo y a
un nodo derecho denominados hijos. En ocasiones, tambin contiene un puntero a un
nico nodo. Si un nodo tiene menos de dos hijos, algunos de los punteros de los hijos
pueden ser definidos como nulos para indicar que no dispone de dicho nodo. En la
figura adjunta se puede observar la estructura de dicha implementacin.

Los rboles binarios tambin pueden ser almacenados como una estructura de datos
implcita en arrays, y si el rbol es un rbol binario completo, este mtodo no
desaprovecha el espacio en memoria. Tomaremos como notacin la siguiente: si un
nodo tiene un ndice i, sus hijos se encuentran en ndices 2i 2i + 1 y 2i 2i + 2, mientras
que sus padres (si los tiene) se encuentra en el ndice
(partiendo de que la raiz
tenga ndice cero). Este mtodo tiene como ventajas el tener almacenados los datos de
forma ms compacta y por tener una forma mas rpida y eficiente de localizar los datos
en particular durante un preoden transversal. Sin embargo, desperdicia mucho espacio
en memoria.

Recorridos de rboles
En todos estos casos deben hacerse cdigo para imprimir por pantalla el contenido de
los nodos y para guardarlo en una lista, que ser impresa posteriormente. En el ltimo
caso los elementos de la lista deben corresponder, secuencialmente, al recorrido del
rbol.

Realizar recorridos en preorden, inorden y postorden de un rbol


Realizar un recorrido en anchura (por niveles) de un rbol, empezando por el
nivel superior.
Realizar un recorrido en anchura (por niveles) de un rbol, empezando por el
nivel inferior.

You might also like