You are on page 1of 10

REPUBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL P.P. PARA LA EDUCACION UNIVERSITARIA


UNIVERSIDAD NACIONAL EXPERIMENTAL DE LOS LLANOS
OCCIDENTALES EZEQUIEL ZAMORA
UNELLEZ MUNICIPALIZADA ACHAGUAS

Facilitadora: Integrantes:

Virginia Valero Freddy Gonzlez

CI: 26.658.895

SECCION:

INFORMATICA II SEMESTRE

Achaguas 29 /11/ 2017


CONTENIDO

ESTRUCTURA NO LINIALES DE DATOS

Un rbol es una estructura de datos homognea, dinmica y no lineal, en la


que cada nodo (elemento) puede tener varios nodos posteriores, pero slo
puede tener un nodo anterior.

Un rbol es dinmico porque su estructura puede cambiar durante la


ejecucin de un programa. Y no lineal, ya que cada nodo del rbol puede
contener varios nodos que dependan de l.

La estructura de un rbol se forma de nodos y arcos (lnea que une dos


nodos), el primero de los nodos del rbol recibe el nombre de raz, del cual
se desprenden los nodos interiores y de stos los nodos llamados hoja, que
son los nodos que se encuentran al final del rbol; todos ellos en conjunto
forman un rbol.

Adems de comprender el concepto y la estructura de un rbol, debemos


tomar en cuenta otros conceptos bsicos que pueden ser tiles en el
momento de construir o programar un rbol, estos conceptos los
clasificaremos en tres rubros:
- Relacin con otros nodos,
- Posicin dentro del rbol y
- Tamao del rbol

En relacin con otros nodos:


- Padre, es el nodo del cual se derivan otros nodos.
- Hijo, es el nodo que depende de otro.
- Hermano, es el nodo que se encuentra al lado del nodo hijo y que
dependen del mismo nodo padre.
En cuanto a la posicin dentro del rbol:
- Raz, es el primero de los nodos y el nico que no contiene un
padre.
- Hoja, es el nodo que se encuentra al final del rbol.
- Interior, es un nodo que no es raz ni hijo y se encuentre ellos.

En relacin a su tamao:
- Orden, es el nmero potencial de nodos hijos que tiene un nodo
padre (orden 2).
- Grado, es el nmero mximo de hijos que tiene un nodo (grado
2).
- Nivel, es el nmero de arcos que deben ser recorridos para llegar
a un determinado nodo ms uno (nivel 3).
- Altura, es el nmero de niveles que deben pasar para llegar al
final del rbol o de la ramificacin (altura 3).
- Peso, es el nmero de nodos del rbol sin contar la raz (peso
6).
- Camino, es la serie de nodos que tienes que pasar para llegar
hasta un nodo.
- Longitud de camino, es el nmero de arcos ms uno que debe
cruzar para llegar a un nodo.
- Rama, es el camino que se forma desde el nodo raz hasta un
nodo hoja.

CONTRUCCION E IMPLEMENTACION DE GRAFOS DIRIGIDOS

El origen de la palabra grafo es griego y su significado etimolgico es


"trazar". Aparece con gran frecuencia como respuesta a problemas de la vida
cotidiana, algunos ejemplos podran ser los siguientes: un grfico de una
serie de tareas a realizar indicando su secuenciacin (un organigrama),
grafos matemticos que representan las relaciones binarias, una red de
carreteras, la red de enlaces ferroviarios o areos o la red elctrica de una
ciudad. En cada caso, es conveniente representar grficamente el problema
dibujando un grafo como un conjunto de puntos (vrtices) con lneas
conectndolos (arcos).
Los grafos son estructuras de datos no lineales que tienen una naturaleza
generalmente dinmica. Su estudio podra dividirse en dos grandes bloques:

Grafos Dirigidos.
Grafos no Dirigidos (pueden ser considerados un caso particular de
los anteriores).

Un ejemplo de grafo dirigido lo constituye la red de aguas de una ciudad ya


que cada tubera slo admite que el agua la recorra en un nico sentido.Por
el contrario,la red de carreteras de un pas representa en general un grafo no
dirigido,puesto que una misma carretera puede ser recorrida en ambos
sentidos.No obstante,podemos dar unas definiciones generales para ambos
tipos.

MATRIZ DE ADYASENCIA.

Existen diversas representaciones de naturaleza muy diferente que resultan


adecuadas para manejar un grafo, y en la mayora de los casos no se puede
decir que una sea mejor que otra siempre ya que cada una puede resultar
ms adecuada dependiendo del problema concreto al que se desea aplicar.
As, si existe una representacin que es peor que otra para todas las
operaciones excepto una es posible que an as nos decantemos por la
primera porque precisamente esa operacin es la nica en la que tenemos
especial inters en que se realice de forma eficiente. Las representaciones
ms usuales: Matriz de adyacencia(o booleana) y Lista de adyacencia.
Grafos dirigidos.

G=(V,A) un grafo dirigido con |V|=n .Se define la matriz de adyacencia o


booleana asociada a G como Bnxn con

Como se ve,se asocia cada fila y cada columna a un vrtice y los


elementos bi,j de la matriz son 1 si existe el arco (i,j) y 0 en caso contrario.

Grafos no dirigidos.

G=(V,A) un grafo no dirigido con |V|=n .Se define la matriz de adyacencia o


booleana asociada a G como Bnxn con:

La matriz B es simetrica con 1 en las posiciones ij y ji si existe la arista (i,j).

EJEMPLO:
Si el grafo es etiquetado, entonces tanto bi,j como bi,j representan al coste o
valor asociado al arco (i,j) y se suelen denominar matrices de coste. Si el
arco (i,j) no pertenece a A entonces se asigna bi,j o bi,j un valor que no puede
ser utilizado como una etiqueta valida.

La principal ventaja de la matriz de adyacencia es que el orden de eficiencia


de las operaciones de obtencin de etiqueta de un arco o ver si dos vrtices
estn conectados son independientes del nmero de vrtices y de arcos. Por
el contrario, existen dos grandes inconvenientes:

Es una representacin orientada hacia grafos que no modifica el


nmero de sus vrtices ya que una matriz no permite que se le o
supriman filas o columnas.
Se puede producir un gran derroche de memoria en grafos poco
densos (con gran nmero de vrtices y escaso nmero de arcos).

Para evitar estos inconvenientes se introduce otra representacin: las listas


de adyacencia.

LISTAS DE ADYACENCIA.

En esta estructura de datos la idea es asociar a cada vrtice i del grafo una
lista que contenga todos aquellos vrtices j que sean adyacentes a l. De
esta forma slo reservar memoria para los arcos adyacentes a i y no para
todos los posibles arcos que pudieran tener como origen i. El grafo, por tanto,
se representa por medio de un vector de n componentes (si |V|=n) donde
cada componente va a ser una lista de adyacencia correspondiente a cada
uno de los vrtices del grafo. Cada elemento de la lista consta de un campo
indicando el vrtice adyacente. En caso de que el grafo sea etiquetado,
habr que aadir un segundo campo para mostrar el valor de la etiqueta.
Esta representacin requiere un espacio proporcional a la suma del nmero
de vrtices, ms el nmero de arcos, y se suele usar cuando el nmero de
arcos es mucho menor que el nmero de arcos de un grafo completo. Una
desventaja es que puede llevar un tiempo O(n) determinar si existe un arco
del vrtice i al vrtice j, ya que puede haber n vrtices en la lista de
adyacencia asociada al vrtice i.

Mediante el uso del vector de listas de adyacencias slo se reserva memoria


para los arcos existentes en el grafo con el consiguiente ahorro de la misma.
Sin embargo, no permite que haya vrtices que puedan ser aadidos o
suprimidos del grafo, debido a que la dimensin del grafo debe ser
predeterminada y fija. Para solucionar esto se puede usar una lista de listas
de adyacencia. Slo los vrtices del grafo que sean origen de algn arco
aparecern en la lista. De esta forma se pueden aadir y suprimir arcos sin
desperdicio de memoria ya que simplemente habr que modificar la lista de
listas para reflejar los cambios.
Como puede verse en el ejemplo de las figuras anteriores tanto el vector de
listas de adyacencias como en la lista de listas se ha razonado en funcin de
los vrtices que actan como orgenes de los arcos. Anlogamente se poda
haber hecho con lo de vrtices destino, y combinando ambas
representaciones podra pensarse en utilizar dos vectores de listas de
adyacencia o dos listas de listas de adyacencia.

OPERCIONES CON GRAFOS

La eleccin de una estructura idnea para representar el TDA grafo no es


una tarea fcil ya que existen dos representaciones totalmente
contrapuestas: por un lado tenemos la matriz de adyacencias que es muy
eficiente para comprobar si existe una arista uniendo dos vrtices pero que
sin embargo desperdicia una gran cantidad de espacio si el grafo no es
completo o est lejos de serlo, adems no tiene la posibilidad de aadir
nuevos vrtices; y por otra parte est la lista de adyacencias que no tiene el
problema de la anterior respecto al espacio pero que sin embargo no es tan
eficiente a la hora de ver si existe una arista entre dos nodos determinados.

Teniendo en cuenta estas consideraciones se ha optado por realizar una


mezcla de ambas representaciones intentando aprovechar de alguna forma
las ventajas que ambas poseen. Por otra parte siguiendo con la idea de tratar
tanto los grafos dirigidos como los no dirigidos bajo una misma estructura, la
estructura elegida posee dos apariencias ligeramente diferentes para tratar
de forma adecuada cada uno de estos dos tipos de grafos.

La estructura consiste (en el caso de que tengamos un grafo dirigido en una


lista de vrtices donde cada uno de estos posee dos listas, una de aristas
incidentes a l y otra de adyacentes. Cada vez que se aade una arista al
grafo se inserta en la lista de aristas adyacentes del vertice origen y en la de
incidentes del vrtice destino. De esta forma la estructura desplegada se
asemejara a una matriz de adyacencia en la cual hay una arista por cada 1 y
el ndice de la matriz es la posicin dentro de la lista de vrtices.

DEFINICION, CONTRUCCION E IMPLEMENTACION DE ARBOLES


GENERALES Y ARBOLES BINARIOS.

Los rboles son estructuras dinmicas no lineales, hasta ahora solo se han
manejado estructuras estticas y dinmicas lineales, es decir a cada
elemento de la estructura solo le sigue otro, en el caso de los rboles a estos
les puede seguir uno o mas elementos, es decir que un elemento de la
estructura puede apuntar a varios, adems de esto son dinmicos ya que se
pueden crear elementos que conformen el rbol cuando se requiera y en
cualquier parte del programa.

Estructuras estticas Estructuras dinmicas

Arreglos Listas

Pilas rboles

Colas

Estructuras lineales Estructuras no lineales

Arreglos rboles

Pilas rboles

Colas

Listas

CLASIFICACIN DE ARBOLES.

rbol de bsqueda perfectamente balanceado.


Definicin: Para todo nodo, la cantidad de nodos de su subrbol izquierdo
difiere como mximo en 1 de la cantidad de nodos del subrbol derecho.

En el peor caso, la bsqueda necesita O(log n).

La insercin puede necesitar reorganizar todo el rbol, O(n).

rbol balanceado AVL (Adelson-Velskii y Landis).

Es un rbol binario de bsqueda, con una condicin de balanceo ms dbil


que hace que no sea tan costoso el proceso de balancear un rbol.

Definicin: Para todo nodo, la altura de sus subrboles difiere como mximo
en 1. (Supondremos que la altura del rbol vaco es -1.)

rboles Binarios

Un rbol binario, es aquel que tiene como mximo 2 descendientes, es decir


cada uno de los nodos del rbol tiene un mximo de 2 hijos; adems si es
binario de bsqueda se define de manera formal como: Para todo nodo T
del rbol debe cumplirse que todos los valores de los nodos del subrbol
izquierdo de T sern menores o iguales al valor del nodo T. De forma similar,
todos los valores de los nodos del subrbol derecho de T deben ser mayores
o iguales al valor del nodo T . Por lo mismo se pueden realizar las
operaciones de bsqueda, insercin y eliminacin, de manera ms eficiente
en este tipo de rbol.

OPERACIONES CON ARBOLES

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
haca el subrbol izquierdo.

2. Repetir sucesivamente el paso 1 hasta que se cumpla alguna de las


siguientes condiciones:

1. El subrbol derecho es igual a vaco, o el subrbol izquierdo es igual a


vaco, en cuyo caso se procede a insertar el elemento en el lugar que le
corresponde.

2. La clave que quiere insertarse es igual a la raz del rbol, en cuyo caso
no se realiza la insercin.

You might also like