0 calificaciones0% encontró este documento útil (0 votos)
417 vistas3 páginas
Este documento describe la implementación de una cola circular utilizando un array. Se explica que una cola circular permite reducir el desperdicio de espacio de memoria al reutilizar las posiciones del array de manera secuencial. Se presenta el código para definir una clase ColaCircular con métodos para insertar, quitar, comprobar si está vacía/llena y acceder a los elementos.
Descripción original:
Codigo de la implementacion de la cola circular en java.
Falta el codigo para visualizar esta implementacion eso lo voy a cambiar en una version dos de este documento.
Este documento describe la implementación de una cola circular utilizando un array. Se explica que una cola circular permite reducir el desperdicio de espacio de memoria al reutilizar las posiciones del array de manera secuencial. Se presenta el código para definir una clase ColaCircular con métodos para insertar, quitar, comprobar si está vacía/llena y acceder a los elementos.
Este documento describe la implementación de una cola circular utilizando un array. Se explica que una cola circular permite reducir el desperdicio de espacio de memoria al reutilizar las posiciones del array de manera secuencial. Se presenta el código para definir una clase ColaCircular con métodos para insertar, quitar, comprobar si está vacía/llena y acceder a los elementos.
Esta implementacion pretende solucionar el problema del desperdicio en la implementacion sobre array. Para esto usa un metodo inusual cuya implementacion se muestra a continuacion.
Este metodo anteriormente descrito lo que hace es devolver siempre el siguiente numero del que se lo entregue, siempre y cuando cumpla con las siguientes condiciones. o El numero entregado debe estar dentro del rango siguiente 0-TamanioArray-1 => Si miramos la fig 2 vemos que el array tiene 8 elementos por lo tanto al usar el metodo siguiente tendremos que mandarle como parmetro nmeros dentro del rango 0-7. As si se manda 0 el mtodo nos devuelve 1, si se manda 7 nos devuelve 0, si se manda 1 nos devuelve 2, etc Pero hay solo un inconveniente con el mtodo de verificacin de cola llena, que para verificar si est llena, hay que recorrer dos espacios al fin de cola. Estructura de Datos Cola Carlos Sigua
Autor:
Ing. Cristian Timbi Docente:
1 Estructura de Datos Cola Estructura de Datos CARLOS SIGUA UPS sede Cuenca
Bueno asi el codigo para la implementacion de cola en array se mejora.Porque hay que recordar que no hay colas circulares, sino que es un concepto abstracto para lograr reducir el desperdicio de espacio de memoria en la implementacion con array.
CODI GO
package implementacionColas;
public class ColaCircular { private int MAXTAMQ ; protected int inicioCola; protected int finCola; protected int[] arrayCola ;
//inicializa la cola vaca public ColaCircular(){ inicioCola = 0; MAXTAMQ=99; //probemos con fin de cola en 0 finCola=0; // finCola = MAXTAMQ-1; arrayCola = new int [MAXTAMQ]; } public ColaCircular(int tamanio){ inicioCola = 0; MAXTAMQ = tamanio; // finCola =0; finCola = MAXTAMQ-1; arrayCola = new int [MAXTAMQ]; }
// avanza una posicin private int siguiente(int r){ return (r+1) % MAXTAMQ; } // operaciones de modificacin de la cola public boolean insertar(int elemento) throws Exception{ if (!isLlena()){ finCola = siguiente(finCola); arrayCola[finCola] = elemento; return true; }else throw new Exception("Overflow en la cola"); } public int quitar() throws Exception{ if (!isVacia()){ int aux = arrayCola[inicioCola]; inicioCola = siguiente(inicioCola); return aux; }else throw new Exception("Cola vacia "); }
public void borrarCola(){ inicioCola = 0;
2 Estructura de Datos Cola Estructura de Datos CARLOS SIGUA UPS sede Cuenca finCola = MAXTAMQ-1; }
// mtodos de verificacin del estado de la cola public boolean isVacia(){ return finCola == siguiente(inicioCola); } // comprueba si est llena public boolean isLlena(){ return inicioCola == siguiente(siguiente(finCola)); } // acceso a la colab public int getElementoInicioCola() throws Exception{ if(!isVacia()){ return arrayCola[inicioCola]; }else throw new Exception("Perdon la cola esta vacia"); }
public int getElementoFinCola() throws Exception{ if(!isLlena()){ return arrayCola[finCola]; }else throw new Exception("Perdon la cola esta llena"); } /** * GETTERS AND SETTERS */ public int getMAXTAMQ() { return MAXTAMQ; } public int getInicioCola() { return inicioCola; } public int getFinCola() { return finCola; } public int[] getArrayCola() { return arrayCola; } }
BI BLI OGRAF A
[1 ] L. J. Aguilar, Listas Enlazadas, de Estructura de Datos en Java, Aravaca, Mc Graw Hill, 2008. [2 ] www.slideshare.net, [En lnea]. Available: http://www.slideshare.net/nieves1988/estructura-de-datos-pilas- y-colas. [3 ] C. C. G., www.cec.uchile.cl, Universidad de Santiago de Chile Facultad de Ingenieria Departamento de Ingenieria Industrial, [En lnea]. Available: http://www.cec.uchile.cl/~luvasque/edo/java/manuales/Estructuras%20de%20Datos%20en%20Lenguaje%20J ava%20(CCG).pdf. [4 ] Torres, www.el.bqto.unexpo.edu.ve, [En lnea]. Available: http://www.el.bqto.unexpo.edu.ve/ftorres/Prof/COLASCIRCULARES.pdf.