sábado, 21 de marzo de 2009

Colas


COLAS


Una cola es una estructura de datos, caracterizada por ser una secuencia de elementos en la que la operación de inserción push se realiza por un extremo y la operación de extracción pop por el otro. También se le llama estructura FIFO (del inglés First In First Out), debido a que el primer elemento en entrar será también el primero en salir.
Las colas se utilizan en sistemas
informáticos, transportes y operaciones de investigación (entre otros), dónde los objetos, personas o eventos son tomados como datos que se almacenan y se guardan mediante colas para su posterior procesamiento. Este tipo de estructura de datos abstracta se implementa en lenguajes orientados a objetos mediante clases, en forma de listas enlazada.
EJEMPLO 1:

package colasoperaciones;
import java.util.*;
public class Cola {
public static void main( String args[] ){
Scanner leer = new Scanner(System.in);
ColaGenerica obj = new ColaGenerica();
int op;
int num;
do{
menu();
op = leer.nextInt();
switch(op){
case 1:
System.out.println( "Numero a insertar" );
num = leer.nextInt();
if(obj.inscola(num)){
System.out.println( "fre"+obj.fre+"fin"+obj.fin+"aux"+obj.max );
System.out.println( "El numero "+num+" se inserto en la cola ["+obj.dret+"]" );
System.out.println();
}
else{
System.out.println( "Cola llena" );
}
break;
case 2:
if(obj.retcola()){
System.out.println( "El dato retirado fue: "+obj.dret );
}
else{
System.out.println( "Cola vacia" );
}
break;
//case 3:
// if(obj.fre==-1; obj.fin==-1){
//System.out.println( "Cola vacia" );
//}
//else {
// for(int i=obj.fre; i++){
// System.out.print(obj.c[i]+" ");
}
break;
}
while(op != 4);
}
public static void menu(){
System.out.println( "\t Menu para colas \n" );
System.out.println( "1.- Insertar" );
System.out.println( "2.- Retirar" );
System.out.println( "3.- Estado" );
System.out.println( "4.- Fin" );
System.out.println( "\n Selecciona" );
}
}

EJEMPLO 2:


package colasoperaciones;
class ColaGenerica
{
public int max;
protected Object dret;
public Object c[];
public int fre = -1;
public int fin = -1;
public ColaGenerica()
{
max=20;
c=new Object [max];
}
public ColaGenerica(int n)
{ max=n;
c=new Object [max];
}
public boolean colallena(int fin,int max)
{
boolean llena;
if (fin==max-1)
llena=true;
else
llena=false;
return llena;
}
public boolean colavacia(int fre)
{
boolean vacia;
if (fre==-1)
vacia=true;
else
vacia=false;
return vacia;
}
public boolean inscola(Object dato)
{
if (fin==max-1)
return false;
fin++;
c[fin] = dato;
if (fin==0)
fre=0;
return true;
}
public boolean retcola()
{
if (fre ==-1)
return false;
dret=c[fre];
if (fre==fin)
{
fre=-1;
fin=-1;
}
else
fre++;
return true;
}
}
EJEMPLO 3:


package cola;
import java.io.*;
//Declaramos la clase calculatorTest
public class ejecutar_cola{
//Declaramos el metodo principal
public static void main (String args[])throws IOException {
BufferedReader entrada = new BufferedReader (new InputStreamReader(System.in));
int Espacios = 0;
char Resp, op;
String aux;
//--- Imprimir Menu ---- \\
System.out.println("\n :: XROM RELOADED :: 19/07/07 \n");
System.out.print("\t Cuantos espacios quiere en la Cola (entre 3 y 30 recomendable)? :");
Espacios = Integer.parseInt(entrada.readLine());
ejecutar_cola x = new ejecutar_cola(Espacios);
//--- Imprimir Menu ---- \\
System.out.println("\n\n\t ------------ //-------- Menu Cola Simple --------\\\\------------ \n ");
do {
System.out.println("\n\n1.- Imprimir Cola"); // Mostrar
System.out.println("2.- Agregar Elemento a la Cola"); // Push
System.out.println("3.- Quitar Elemento de la Cola"); // Pop
System.out.print("\n\n Elija una Opcion : ");
aux = entrada.readLine();
op = aux.charAt(0);
//---- Elegir opcion ---\\
switch (op) {
case '1':
x.Imprimir();
break;
case '2':
Ejecutar.Push();
break;
case '3':
Ejecutar.Pop();
break;
default:
System.out.println("opcion fuera de rango !!");
} // Fin del switch
System.out.print("Desea hacer otra operacion ?? S / N ");
aux = entrada.readLine();
Resp = aux.charAt(0);
} while (Resp == 'S' Resp == 's');
} // Fin del metodo main
} // Fin de la calse

No hay comentarios:

Publicar un comentario