Está en la página 1de 17

INSTITUTO TECNOLOGICO DE ACAPULCO

INGENIERIA EN SISTEMAS COMPUTACIONALES



VERANO 2014

HORARIO: 08:00 AM / 12:00 PM

MATERIA: ESTRUCTURA DE DATOS SED102

UNIDAD 4 ESTRUCTURAS NO LINEALES

PROFESOR:
MORALES GALVEZ ADRIAN

ALUMNOS:
BRYAN MICHELLE JIMENEZ ALTAMIRANO MATR.12320758
IVN OCHOA GALEANA MATR.12320800
ALONDRA GUADALUPE PAREDES CAMPOS MATR. 12320810
ROSA LAURA GONZALES CORTES MATR. 12320015
OSCAR IVAN RAMIREZ SANTOS MATR.12320818























INDICE

PORTADA _______________________ 1
INDICE __________________________ 2
Introduccin __________________________ 3
Marco terico ________________________ 4
Desarrollo _________________________ 5
Resultados _______________________ 15
Conclusiones ____________________ 16
Bibliografa ____________________ 17




















Introduccin

Dentro del presente reporte de prctica, se dan a conocer algunas de las estructuras de datos
no lineales, mismo nombre que recibe la unidad nmero cuatro de esta materia.
Durante el transcurso de esta unidad, se estudiaran y analizaran las estructuras de datos
antes mencionadas, para su comprensin y pronta aplicacin.
El comportamiento que tienen estas estructuras de datos, son esenciales, para que
posteriormente se entienda el funcionamiento de las otras estructuras de datos existentes,
que son las no lineales, por lo que se debi poner suma atencin a las clases. Debido a que
durante estas se dieron los conocimientos necesarios, y despus llevar estos mismos a la
prctica, creando programas en java sobre las estructuras de datos ya mencionadas.
El objetivo principal de esta unidad y de la creacin de estas prcticas, es observar cmo es
su comportamiento, como facilitar su manejo, como aplicarlas pero sobre todo entender
perfectamente cmo es que funcionan.






























Marco terico

Estructuras de datos no lineales
Estas estructuras se caracterizan principalmente porque sus elementos estn organizados
consecutivamente, es decir, cada elemento tiene un antecesor y un sucesor y as
sucesivamente.
Como ya se haba mencionado antes, solo estudiaremos dos de estas estructuras, las cuales
son, arboles y grafos. A pesar de que son estructuras no lineales, cada una tiene sus propias
caractersticas que las distinguen de las dems.
Empecemos por el rbol es una abstraccin matemtica de una estructura no lineal que
modela una estructura jerrquica.
En computacin los encontramos en los compiladores, en la organizacin de sistemas de
archivos la estructura de herencia de las clases de Java es un rbol, la invocacin de los
mtodos en tiempo de ejecucin en Java es un rbol; procesamiento de textos y algoritmos
de bsqueda.
Podemos concluir que el uso de un rbol es ms que un arreglo bien implementado, puesto
que forma parte de nuestra toma de decisiones en la vida diaria.
Un grafo est formado por un conjunto de nodos(o vrtices) y un conjunto de arcos. Cada
arco en un grafo se especifica por un par de nodos.
En los grafos, como en todas las estructuras de datos, las dos operaciones bsicas son
insertar y borrar. En este caso, cada una de ellas se desdobla en dos, para insertar/eliminar
vrtices e insertar/eliminar aristas.
Los arboles y los grafos tienen cosas en comn, el hecho de que son llamados estructuras
no lineales, y que trabajan con nodos e interconexiones sobre los mismos nodos, mas no
son iguales, ya que los grafos a diferencia de los arboles tienen variacin de flujo de
informacin y los arboles no puesto que se forman a partir de una estructura jerrquica
desde la raz hasta las hojas no hay vuelta a atrs.

















Desarrollo
Temario
4.1 Arboles
4.1.1 Concepto de rbol
4.1.2 Clasificacin de arboles
4.1.3 Operaciones bsicas sobre arboles binarios
4.1.4 Aplicaciones arboles
4.1.5 Arboles balanceados
4.2 Grafos
4.2.1 Terminologa de grafos
4.2.2 Operaciones bsicas sobre grafos

4.1 Arboles
4.1.1 Concepto de rbol

El rbol es una abstraccin matemtica de una estructura no lineal que modela una
estructura jerrquica. El rbol juega un papel central en el diseo y anlisis de algoritmos
ya que se utilizan para describir propiedades dinmicas de los algoritmos y porque se
construyen. Los rboles se encuentran frecuentemente en la vida diaria: en rboles
genealgicos y representacin de torneos. En computacin los encontramos en los
compiladores, en la organizacin de sistemas de archivos la estructura de herencia de las
clases de Java es un rbol, la invocacin de los mtodos en tiempo de ejecucin en Java es
un rbol; procesamiento de textos y algoritmos de bsqueda.
Ejemplo de rbol;
ARBOLES NO BINARIOS;
Son aquellos rboles que tienen ms de dos ramificaciones depende el tipo de rbol que se
elija tendr el nmero de ramificaciones mximas.
Ejemplo el rbol ternario tendr 3 ramificaciones mximas.
ARBOLES TERNARIOS
Un rbol ternario es una estructura similar a un rbol, tiene una raz y cada nodo tiene
mximo tres hijos es a ternario (de tres vas) rbol estructura de datos cul combina la
eficacia del tiempo de digital intentos con la eficacia del espacio de rboles de bsqueda
binaria. La estructura que resulta es ms rpida que hashing para muchos tpicos de
bsqueda los problemas, y apoyan una gama ms amplia de problemas y de operaciones
tiles.

Teorema. Dado un rbol m-ario, A = (V,E), donde |V | = v, h es el nmero de hojas e i el
nmero de vrtices internos, se cumple que:
v = mi + 1
h = (m 1)i + 1
i = h1
m1 = v1
m

Consecuencia: Un rbol binario tiene un nmero impar de vrtices, 2i + 1 (i
Internos e i + 1 hojas)
Teorema. Dado un rbol m-ario, A = (V,E) de altura a y con h hojas, se cumple que:
ma h
a [logmh], donde [x] es el menor entero que es mayor o igual que x
.
Ejemplo de rboles ternarios;

CREACION
[Inicializacin] Sea S una sucesin de vrtices de G. S = {v1}, y sea T el subgrafo
Formado por v1, que ser la raz del rbol T.

2. [Agregar las aristas] Para x S en orden, aadir la arista {x, y} a T para cada vrtice Y
G en orden, siempre que {x, y} sea arista de G y no forme un ciclo al aadirlo a T , Y pasar
a 3. Si no se pueden agregar lados, se ha terminado (T es un rbol generador).
3. [Actualizar S] Reemplazar S por los hijos (en T) de S ordenados segn el orden
Original. Pasar a 2.
Teorema. Sea G un grafo conexo y T el rbol obtenido mediante BEA. T es un rbol
generador de G.M.A.

INSERCION DE ARBOL TERNARIOS
Para insertar un elemento X en un rbol se realiza bsqueda infructuosa y se inserta dicho
elemento en el ltimo nodo visitado durante la bsqueda, lo cual implica manejar dos casos
distintos
Caso 1:
Si el nodo donde se inserta X tena una sola llave (dos hijos), ahora que da con dos llaves
(tres hijos).
Caso 2:
Si el nodo donde se inserta X tena dos llaves (tres hijos), queda transitoriamente con tres
llaves y se dice que est saturado.
Ejemplo de insercin;
ELIMINACION DE ARBOL TERNARIOS
Sin perder generalidad se supondr que el elemento a eliminar z se encuentra en el nivel
ms bajo del rbol, si esto no es as, entonces el sucesor y el predesor de z se encuentran
necesariamente en el nivel ms bajo.
En este caso basta con borrar uno de ellos y luego escribir su valor sobre el
almacenado en z,
La eliminacin tambin se presenta en sus dos posibles casos;
Caso 1:
El nodo donde se encuentra z contiene dos elementos. En este caso se elimina z y
el nodo queda con un solo elemento.
Caso 2:
El nodo donde se encuentra z contiene un solo elemento. En este caso z el nodo queda sin
elementos si el nodo hermano posee dos elementos se le quita uno y se inserta el nodo con
UNDERFOLW.
RECORRIDOS
PRE-ORDEN
* EL recorrido en pre-orden consiste en listar el nodo que se visita y despus los nodos en
sub arboles del nodo visitado.
* La seleccin del subconjunto a enlistar comienza con el hijo de ms a la
izquierda y termina con el hijo de ms ala derecha.
POST-ORDEN
* Es aquel en que primero se enlistan los subrboles del nodo visitado, dejando en ltimo al
nodo en cuestin.
* La manera de seleccionar los subconjuntos es igual que en pre-orden, es decir de
izquierda a derecha.
SIMETRICO
En orden simtrico se enlista el nodo visitado la segunda vez que se visita.
Es decir que primero en listaremos el subconjunto de mas ala izquierda, luego el nodo en
cuestin y por ltimo los subconjuntos restantes.
ARBOLES CON RAIZ
En este rbol un nodo es designado como la raz del rbol, en computacin se usa a este
concepto se le conoce simplemente como rbol.
* Un rbol con raz es un rbol libre donde un vrtice (llamado raz) es distinguido de los
otros.
* A los vrtices de los rboles con raz se les llama nodos.
* Considere un nodo x en un rbol T con raz r:
* Cualquier nodo en el (nico) camino de r a x es un ancestro de x.
* A x se le llama entonces descendiente de y.
* El sub-rbol con raz x es el rbol inducido por los descendientes de x.

4.1.2 Clasificacin de arboles
Los rboles se clasifican de la siguiente manera:
- rboles binarios.
o Distintos
o Similares
o Equivalentes
o Equilibrado
o Completo



- rboles Multicaminos.
o B
o B+
o B*
o R
o 2-4




Un rbol binario es una estructura de datos homognea, dinmica y no lineal en donde a
cada nodo le pueden seguir como mximo dos nodos hijos (que pueden estar vacos), y
cada hijo se designa ya sea como hijo izquierdo o como hijo derecho.

4.1.3 Operaciones bsicas sobre arboles binarios

Un rbol binario es equilibrado es aquel que todos sus nodos cumplen con la propiedad:
altura (subrbol izquierdo) altura (subrbol derecho) <= 1

Ejemplo. Si usamos los rboles anteriores para determinar si son o no equilibrados.
El primero tiene una altura izquierda de 2 y derecha 1, 2-1 <= 1, la condicin es verdadera,
por lo tanto es un rbol equilibrado.
El segundo tiene una altura izquierda de 2 y derecha 0, 2-0 <= 1, la condicin es falsa, por
lo tanto es un rbol no equilibrado.
Un rbol binario es completo cuando todos sus nodos excepto los del ltimo nivel, tienen
dos hijos y todas las hojas estn en el mismo nivel. Para calcular el nmero de nodos de un
rbol completo se aplica la formula:

Nmero de nodos = 2
altura
- 1
Las operaciones que se pueden aplicar a un rbol binario son las siguientes:
- Creacin de un rbol
- Insercin de un nodo nuevo.
- Eliminacin de un nodo.
- Recorrido del rbol.
- Balanceo del rbol.
Insercin.
La operacin de insercin permite agregar un nuevo nodo hoja al rbol, pero antes de
agregarlo, debemos tomar en cuenta como se hace el acomodo u organizacin de los
nodos dentro de la estructura del rbol. El primer nodo que entra en el rbol se le conoce
como nodo raz, del cual se desprendes los nodos intermedio y hojas.
El segundo elemento que entra en el rbol, despus del nodo raz, tiene dos opciones para
su insercin dentro de la estructura, el lado izquierdo o el lado derecho del rbol, para
determinar por cul lado debe entrar el segundo nodo tenemos que determinar el valor del
campo dato del nuevo nodo, si el dato es menor que el nodo actual, el nuevo nodo se
inserta por el lado izquierdo, o si el dato es mayor que el nodo actual, el nuevo nodo se
inserta por el lado derecho. De esta forma la estructura del rbol organiza los nodos para
un rpido acceso y bsqueda de un elemento.
Algo ms que debe contemplar despus elegir el camino por donde se insertara el
nuevo nodo, es, si existe un espacio libre para la insercin del nuevo nodo, es decir, si
el nodo actual no contiene hojas, el nuevo nodo se puede insertar, en caso contrario
debe continuar la bsqueda de un lugar disponible dentro del rbol.

eliminacin
La operacin de eliminacin de un nodo consiste en borrar el nodo del rbol binario de una
forma definitiva, para este proceso la relacin del nodo que se quiere eliminar con otros
nodos debe desaparecer, pero que sucede con los nodos que dependen del nodo que se
quiere eliminar. Para esto analizaremos los tres casos de eliminacin en un rbol binario:
Eliminacin de una hoja,
Eliminacin de un padre con un hijo o subrbol y
Eliminacin de un padre con dos hijos o subrboles.
La eliminacin de una hoja, es simple, solo es necesario encontrar el padre y establecer en
nulo la relacin con el nodo hoja.
La eliminacin de un padre con un hijo, tambin es simple, solo se requiere conocer quin
es el nodo anterior al padre y establecer una relacin con el nodo hijo y que el nodo hijo
establezca la relacin con el que ser su nuevo padre.
La eliminacin de un padre con dos hijos, no es tan simple como las anteriores ya que en
este caso la eliminacin del padre genera dos nodos hijos que posiblemente no se puedan
relacionar con el nodo anterior al padre, ya que se puede romper la integridad del rbol
binario y agregar tres hojas a un padre. Para solucionar este problema se encuentran dos
posibles soluciones:
- Eliminacin por fusin y
- Eliminacin por copiado.
La eliminacin por fusin, genera un rbol nuevo de los dos subrboles que quedaron sin
padre y el padre del nuevo rbol lo incorpora en el lugar donde est el nodo que se quiere
eliminar.
Para fusionar dos subrboles, se debe realizar el siguiente proceso: Dentro del subrbol
izquierdo encuentre el elemento mayor, que por la naturaleza de los rboles binario, es el
que est ms a la derecha del subrbol izquierdo y que no contiene hijo en su parte derecha
o simplemente no contiene hijos, el nodo mayor encontrado se transforma en el nodo padre
del subrbol derecho, estableciendo su campo derecha la relacin con el padre del subrbol
derecho. Con esto formaremos un solo rbol, el cual debemos fusionarlo al rbol original,
en el lugar donde se elimino el nodo.
Ejemplo. Si queremos eliminar el nodo con el nmero 20 del siguiente rbol, el
procedimiento sera el siguiente:


Encontrar el nodo que se quiere eliminar y el anterior a l, para este caso son los
nodos marcados con los nmeros 20 y 10.
Encontrar el nodo mayor del subrbol izquierdo, que para este caso sera el nodo
con el nmero 15.
Al campo derecho del nodo mayor asignarle el nodo padre del subrbol derecho,
continuando con el ejemplo al nodo con el nmero 15 en su campo derecho
asignarle el nodo con el nmero 30, que es el padre del subrbol derecho.
Al nodo conocido como el anterior en su campo derecho asignarle el nodo padre del
subrbol izquierdo, para terminar con este ejemplo al nodo con el nmero 10 en su
campo derecho asignarle el nodo con el nmero 15.




Procesos de eliminacin por Fusin.




La eliminacin por copiado, se encarga de borrar el elemento del nodo que se quiere
eliminar, cambindolo por el elemento del nodo sucesor inmediato.
Debe recordar que cuando el nodo que se quiere eliminar tiene sus dos hijos, los hijos se
transforman en padre o raz de dos subrboles, izquierdo y derecho, y el sucesor de cada
subrbol se encuentra de la siguiente manera: a la derecha el sucesor del subrbol
izquierdo o a la izquierda el sucesor del subrbol derecho.
Para localizar el sucesor del nodo que se quiere eliminar, lo primero que se debe hacer es
moverse un nodo a la izquierda del nodo que se quiere eliminar y avanzar a la derecha lo
ms que sea posible, almacenando el nodo anterior al sucesor en cada movimiento.
Posteriormente el elemento del nodo sucesor remplaza el elemento del nodo que se quiere
eliminar y el nodo izquierdo del sucesor se relaciona con el nodo anterior al sucesor en su
campo derecho.
Ejemplo. Si queremos eliminar el nodo con el nmero 20 del siguiente rbol, el
procedimiento sera el siguiente:
Encontrar el nodo que se quiere eliminar y en anterior a l, para este caso son los nodos
marcados con los nmeros 20 y 10.

Marcar como el sucesor el nodo que apunta el campo izquierdo del nodo a eliminar
y el campo que se quiere eliminar es el anterior al sucesor, para este caso el sucesor
es el nodo con el nmero 15 y el anterior es el nodo con el nmero 20.
Moverse lo ms a la derecha posible marcando el nodo hacia donde se mueve como
el sucesor y el anterior a l, al terminar esta bsqueda el sucesor es el nodo con el
nmero 18 y el anterior al sucesor es el nodo con el nmero 15.
Cambiar el elemento del nodo que se quiere eliminar por el elemento que tiene el
nodo sucesor, para este caso quitar el 20 y ponerle el nmero 18 en su lugar.
Por ltimo al nodo anterior en su campo derecho asignarlo como nulo si el sucesor
no contiene un nodo en su parte izquierda.
Si el sucesor contiene un nodo en su parte izquierda, el nodo anterior al sucesor en
su campo derecho debe apuntar al nodo izquierdo del sucesor, que para este caso no
se presento esa situacin.



4.1.4 Aplicaciones arboles.


Un ejemplo de estructura en rbol es el sistema de directorios y ficheros de un sistema
operativo. Aunque en este caso se trata de rboles con nodos de dos tipos, nodos directorio
y nodos archivo, podramos considerar que los nodos hoja son archivos y los nodos rama
son directorios. Otro ejemplo podra ser la tabla de contenido de un libro, por ejemplo de
este mismo manual, dividido en captulos, y cada uno de ellos en subcaptulos. Aunque el
libro sea algo lineal, como una lista, en el que cada captulo sigue al anterior, tambin es
posible acceder a cualquier punto de l a travs de la tabla de contenido. Tambin se suelen
organizar en forma de rbol los organigramas de mando en empresas o en el ejrcito, y los
rboles genealgicos.}

4.1.5 Arboles balanceados.


Un rbol AVL (llamado as por las inciales de sus inventores: Adelson-Velskii y Landis)
es un rbol binario de bsqueda en el que para cada nodo, las alturas de sus subrboles
izquierdo y derecho no difieren en ms de 1.
No se trata de rboles perfectamente equilibrados, pero s son lo suficientemente
equilibrados como para que su comportamiento sea lo bastante bueno como para usarlos
donde los ABB no garantizan tiempos de bsqueda ptimos.
El algoritmo para mantener un rbol AVL equilibrado se basa en reequilibrados locales, de
modo que no es necesario explorar todo el rbol despus de cada insercin o borrado.

Los AVL son tambin ABB, de modo que mantienen todas las operaciones que poseen
stos. Las nuevas operaciones son las de equilibrar el rbol, pero eso se hace como parte de
las operaciones de insertado y borrado.

4.2 Grafos.

Un grafo est formado por un conjunto de nodos(o vrtices) y un conjunto de arcos.
Cada arco en un grafo se especifica por un par de nodos.
El conjunto de nodos es {A, B, C, D, F, G, H} y el conjunto de arcos {(A, B), (A,
D), (A, C), (C, D), (C, F), (E, G), (A, A)} para el siguiente grafo


4.2.1 Terminologa de grafos.

Al nmero de nodos del grafo se le llama orden del grafo.
Un grafo nulo es un grafo de orden 0 (cero).
Dos nodos son adyacentes si hay un arco que los une.
En un grafo dirigido, si A es adyacente de B, no necesariamente B es adyacente de A
Camino es una secuencia de uno o ms arcos que conectan dos nodos.
Un grafo se denomina conectado cuando existe siempre un camino que une dos nodos
cualesquiera y desconectado en caso contrario.
Un grafo es completo cuando cada nodo est conectado con todos y cada uno de los
nodos restantes.
El camino de un nodo as mismo se llama ciclo.

4.2.2 Operaciones bsicas sobre grafos.

En los grafos, como en todas las estructuras de datos, las dos operaciones bsicas son
insertar y borrar. En este caso, cada una de ellas se desdobla en dos, para insertar/eliminar
vrtices e insertar/eliminar aristas.
Insertar vrtice
La operacin de insercin de un nuevo vrtice es una operacin muy sencilla, nicamente
consiste en aadir una nueva entrada en la tabla de vrtices (estructura de datos que
almacena los vrtices) para el nuevo nodo. A partir de ese momento el grafo tendr un
vrtice ms, inicialmente aislado, ya que ninguna arista llegar a l.
Insertar arista
Esta operacin es tambin muy sencilla. Cuando se inserte una nueva arista en el grafo,
habr que aadir un nuevo nodo a la lista de adyacencia (lista que almacena los nodos a los
que un vrtice puede acceder mediante una arista) del nodo origen, as si se aade la arista
(A,C), se deber incluir en la lista de adyacencia de A el vrtice C como nuevo destino.
Eliminar vrtice
Esta operacin es inversa a la insercin de vrtice. En este caso el procedimiento a realizar
es la eliminacin de la tabla de vrtices del vrtice en s. A continuacin habr que eliminar
las aristas que tuviesen al vrtice borrado como origen o destino.
Eliminar arista
Mediante esta operacin se borra un arco del grafo. Para llevar a cabo esta accin es
necesario eliminar de la lista de adyacencia del nodo origen el nodo correspondiente al
nodo destino.
Otras operaciones
Las operaciones adicionales que puede incluir un grafo son muy variadas. Adems de las
clsicas de bsqueda de un elemento o recorrido del grafo, tambin podemos encontrarnos
con ejecucin de algoritmos que busquen caminos ms cortos entre dos vrtices, o
recorridos del grafo que ejecuten alguna operacin sobre todos los vrtices visitados, por
citar algunas operaciones de las ms usuales.
































Resultados

El resultado de esta unidad, fue claramente un aprendizaje detallado y sin tanta palabrera,
algo concreto y explicito, para que no haya dudas al momento de transportar del borrador al
cdigo lo aprendido. 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.

































Conclusiones
Del texto anteriormente redactado, podemos destacar las diferencias que hay entre lo que es
un grafo a lo que es un rbol, esto nos ayuda a formar una idea y a llevarlo a la practica con
mayor facilidad, tenemos las descripciones de cada una, sus definiciones, y sus
caractersticas, para evaluarlas y razonar que tanta diferencia hay entre una y otra. Tambin
podemos denotar las diferentes operaciones que se pueden realizar a cabo con estas
mismas. Estos conceptos nos ayudaran mucho al querer llegar a la codificacin en el
lenguaje del gusto, ser fcil identificar sus partes, y lograr la menor cantidad de errores se
sintaxis o ningn error.



































Bibliografa

Estructura de Datos en (C).
(N) Aron M. Tenenbaum.
Yedidyah, Langsam.
Moshe A, Augenstein.

Estructura de datos y algoritmos en java.
Adam Drozked
Thomson 2. Edicin.

Estructura de datos
Roman Martinez, Edgar Quiroga.
Ciencia e ingenieras.

Linkografias

https://sites.google.com/site/estdatjiq/home/unidad-iv
http://oskasuki.blogspot.mx/
http://rhomarycristobal.blogspot.mx/2011/12/cuarta-unidad-estructuras-no-lineales.html

También podría gustarte