Documente Academic
Documente Profesional
Documente Cultură
NUCLEO DE ANZOATEGUI
EXTENSION REGION CENTRO-SUR
ESCUELA DE INGENIERIA
DEPARTAMENTO DE SISTEMA
Bachilleres:
Profesor:
Eduardo Correa
Camero Jos
C.I. 24.228.353
C.I. 24.230.137
Abril, 2016
ndice
ndice
Introduccin
Listas
Tipos de Listas
Pilas
12
Colas
14
Colas enlazadas
15
rboles Binarios
17
Equilibrio
17
18
19
20
Algoritmos de modificacin
21
Insercin
21
Eliminacin
22
Conclusin
25
Bibliografa
26
Introduccin
Listas.
Las listas admiten ciertas operaciones como son insertar un nodo adicional, borrar
un nodo, etc. En funcin de la forma de insertar nuevos elementos y acceder a los
existentes se tienen distintos tipos de listas. A continuacin se ver qu operaciones
bsicas se pueden realizar sobre las listas. Se tratarn las operaciones que permiten
insertar y borrar elementos nicamente al principio de la misma, por lo que las
Las listas pueden ser circulares, con el ltimo elemento apuntando al primero, o
pueden tener un campo que contenga el nmero de nodos que hay en la lista, y se
pueden definir de muchas formas. Podran definirse a partir de un vector teniendo un
acceso rpido aunque con un nmero de elementos limitado por la dimensin del
vector.
Otra forma de definir una lista es de forma recursiva. Resulta menos eficiente que
definirla a partir de un vector sin embargo no impone restricciones en cuanto a su
longitud. As se define en Java cada uno de los elementos de la lista:
Puede observase como esta estructura se corresponde con las cajas anteriormente
vistas en la representacin de listas. Se observa que tiene dos atributos,
el elemento que se almacena en cada nodo y el Nodo siguiente en el orden de la lista.
A continuacin se implementan los mtodos de la clase para manipular los nodos:
Nodo.java
El constructor crea un nodo a partir de un objeto y el siguiente nodo al que va a
estar enlazado. Las operaciones cambiar Elemento y cambiar Siguiente cambian los
valores de los campos del objeto. Por ltimo Siguiente y Elemento devuelven el
contenido del nodo.
A partir de esta clase se implementara la lista como una cadena de nodos:
ListaEnlazada.java
3) Lista cclica o bucles: El primer y ltimo nodo est unido. Se puede empezar
por cualquier nodo y seguir la lista en cualquier direccin hasta que se regrese
hasta el nodo original. Vistas como listas sin comienzo ni fin, usado para
dirigir buffers para ingerir datos, y para visitar todos los nodos de una lista a
partir de uno dado. Una lista enlazada circular que contiene tres valores
enteros.
4) Listas enlazadas circulares simples. Cada nodo tiene un enlace. El siguiente
nodo del ltimo apunta al primero. Como es una lista enlazada simple, los
nuevos nodos pueden ser solo eficientemente insertados despus de uno que
Pilas.
10
haremos en la posicin siguiente a la que nos indica este campo. Se observa como
slo se inserta un nuevo elemento sobre la cima cuando hay espacio suficiente, es
decir la longitud de la pila es menor que su capacidad. Primero se incrementa el valor
del campo top y despus se inserta el elemento en la pila.
Se utilizar ahora la clase Nodo definida anteriormente para ver esta otra
implementacin la cual ser llamada PilaEnlazada. Los campos a definir para esta
11
clase son top, que almacena el nodo que est en la cima de la pila y la longitud de la
misma.
PilaEnlazada.java
A continuacin se ver cmo se insertan los nodos por la cima de la pila. Para ello
se crea un nuevo nodo y se le asigna como siguiente nodo la antigua cima de la pila.
El siguiente paso es actualizar la cima de la pila con el nuevo nodo creado.
12
Colas
13
14
Se observa como la clase Cola contiene dos campos, cola y cabecera que apuntan
al principio y al final de la cola. La cabecera se utiliza para extraer elementos. En
cambio para insertar, se usa la cola.
La operacin encolar crea un nodo cuyo sucesor es nulo. Esto es porque se aade
al final de la cola, es decir, donde apunta el campo cola. Si la cola est vaca, la
cabecera y la cola apuntan al mismo objeto Nodo.
15
16
rboles binarios.
Equilibrio
La distancia de un nodo a la raz determina la eficiencia con la que puede ser
localizado. Dado un nodo, se lo puede localizar mediante un solo camino de
bifurcacin de ramas. Esta caracterstica conduce al concepto de balance o equilibrio.
Para determinar si un est equilibrado se calcula su factor de equilibrio.
17
B=h D h I
Utilizando esta frmula, el equilibrio del nodo raz de la figura 1 es 0.
18
19
20
Insercin
Se trata de crear un nuevo nodo en la posicin que le corresponda segn el criterio
de rbol binario de bsqueda. A continuacin se muestra el algoritmo.
Eliminacin.
La eliminacin de un nodo en un rbol binario de bsqueda implica una
reorganizacin posterior del mismo con el objeto de que una vez eliminado el nodo el
rbol mantenga su naturaleza de bsqueda. Para ello se procede de la manera
siguiente:
A continuacin se muestra el cdigo del algoritmo de eliminacin.
22
23
24
Conclusin
A pesar, de que podramos trabajar con rboles y/o grafos, cuando se trata de listas
simplemente enlazadas, lo ms probable es que tanto nuestro rbol, como nuestro
grafo, adquieran una caracterstica lineal.
25
Bibliografa
Roldn, A. Pilas en Java {Blog}. Consultado el 20 de Abril del
2016 en: http://www.ciberaula.com/articulo/pilas_en_java
Roldn, A. Listas en Java {Blog}. Consultado el 20 de Abril del
2016 en: http://www.ciberaula.com/articulo/listas_en_java
Roldn, A. Colas en Java {Blog}. Consultado el 20 de Abril del
2016 en: http://www.ciberaula.com/articulo/colas_en_java
Roldn, A. rboles en Java {Blog}. Consultado el 20 de Abril del
2016 en: http://www.ciberaula.com/articulo/arboles/
Wikipedia. (2015). Tipo de dato abstracto {Blog}. Consultado el
20 de Abril del 2016 en: https://es.wikipedia.org/wiki/Tipo_de_dato_abstracto
Wikipedia. (2016). Tipo de dato {Blog}. Consultado el 20 de Abril
del 2016 en: https://es.wikipedia.org/wiki/Tipo_de_dato
Wikipedia. (2016). rbol binario {Blog}. Consultado el 20 de
Abril del 2016 en: https://es.wikipedia.org/wiki/%C3%81rbol_binario
Mac. (2014). Teora de sistemas {Blog}. Consultado el 20 de
Abril del 2016 en: http://www.aprenderaprogramar.com/foros/index.php?
topic=1367.5;wap2
Wikipedia. (2016). Arboles binarios En Java recorrido preorden
postorden inorden {Foro}. Consultado el 20 de Abril del 2016 en:
http://escritura.proyectolatin.org/estructura-de-datos/conceptos-de-arboles-binarios/
Autor Desconocido.
Virtual}.
Consultado
20
de
Abril
del
2016
en:
http://ocw.upm.es/lenguajes-y-sistemas-informaticos/estructuras-dedatos/contenidos/tema4nuevo/Arboles.pdf
26
27