Cola circular estatica

Iniciado por soser, 8 Septiembre 2010, 03:39 AM

0 Miembros y 1 Visitante están viendo este tema.

soser

Que tal, bueno mi duda es acerca de como implementar una cola circular con un arreglo, y pues quisiera que me explicaran la logica de como serian las funciones de insertar y borrar porque me confundo mucho y pues he buscado y solo me explican la cola circular pero con nodos, mas no con un arreglo...bueno como dije solo quiero que me expliquen logica de como seria, no el codigo.
Espero que no sea una molestia, y pues gracias

danielo-

Te dejo el code y tu lo examinas orale?
Es una cola circular hecha con un array, analizala un poco, no tiene mucha ciencia
al ser un array pues se puede utilizar un int como puntero, como es esto? pues simplemente un int me indicara el indice del array donde se encuentra el fin y otro int me indicara  el frente de la cola...  :¬¬


Código (java) [Seleccionar]

class ColaCircular{
int max,frente,fin;
Object colaCircular[];

public void tamano(int n){
max=n;
colaCircular=new Object[max];
frente=-1;
fin=-1;
}

public void anadir(Object o){
if((fin==max-1 && frente==0) || (fin+1==frente)) {
System.out.println("overflow");
return;
}
if(fin==max-1 && frente!=0) {
fin=0;
}
else {
fin++;
colaCircular[fin]=o;
}
if(frente==-1){
frente++;
}
}

public void eliminar(){
if(frente==-1){
System.out.println("underflow");
return;
}
if(frente==fin) {
frente=-1;
fin=-1;
return;
}
if(frente==max){
frente=0;
}
else {
frente++;
}
}

public Object elemento(){
if(frente==max){
System.out.println( "overflow");
return 0;
}
else{
return colaCircular[frente];
}
}

public boolean estaVacia(){
return frente==-1;
}

public boolean estaLlena(){
return (fin==max-1&&frente==0)||(fin+1==frente);
}

public void estatus(){
System.out.println("Frentre: "+frente);
System.out.println("Maximo: "+max);
}


}



checalo... Saludos!

soser

Gracias por la ayuda, me ha servido de mucho me aclaro muchas dudas

mariogamiz91

ola que tal disculpa me aparece esto Error: no se ha encontrado el método principal en la clase ColaCircular, defina el método principal del siguiente modo:
   public static void main(String[] args)
ya lon puse y aun asi no me deja correr el programa ayuda pls!!

ponchado

me lo traducen en c porfavor

Orubatosu

Cita de: mariogamiz91 en 22 Marzo 2012, 23:27 PM
ola que tal disculpa me aparece esto Error: no se ha encontrado el método principal en la clase ColaCircular, defina el método principal del siguiente modo:
   public static void main(String[] args)
ya lon puse y aun asi no me deja correr el programa ayuda pls!!

Eso es bastante obvio, lo que tienes en el listado es la clase. Si quieres usarla deberás de instanciarla en el programa principal o en cualquier otro lado, pero "de por si" una clase no hace cosas sola mágicamente, hay crear una instancia y trabajar luego sobre ella

"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998