Está en la página 1de 5

TTE. AO.

LUIS CARLOS QUINO ROJAS

COLA vehiculo

public class Vehiculo


{
String placa;
String marca;
int modelo;

Vehiculo()
{
placa=null;
marca=null;
modelo=0;
}

public void leer()


{
System.out.print("placa=");
placa=Leer.dato();
System.out.print("marca=");
marca=Leer.dato();
System.out.print("modelo=");
modelo=Leer.datoInt();
}

public void mostrar()


{
System.out.println("placa="+placa+"\n marca="+marca+"\n
modelo="+modelo);
}
}

public class Cola


{
// CAMPOS
int frente, fin;
Vehiculo [] elem;
final int MAX = 50 ;

// CONSTRUCTOR POR DEFECTO


public Cola ()
{
frente = fin = MAX;
elem=new Vehiculo[MAX+1];
}

// VERIFICAR SI LA COLA ESTÁ VACÍA frente = fin


public boolean colaVacia()
{
return frente == fin ;
}

// VERIFICAR SI LA COLA ESTÁ LLENA


// frente EN POSICION SIGUIENTE A fin
public boolean colaLlena ()
{
int sigfin;
if (fin == MAX)sigfin=1;
else sigfin= fin+1;
return sigfin == frente ;
}

// VER EL ELEMENTO DEL FRENTE


public Vehiculo ver ()
{
if (frente == MAX)
return elem[1];
else
return elem[frente +1];
}

// ELIMINAR EL ELEMENTO DEL FRENTE


public void eliminar ()
{
if ( !colaVacia() )
{
// COLA NO VACIA
//DESPLAZAR frente A POSICION ANTERIOR
if (frente == MAX)
frente=1;
else
++frente ;
}
}

// INSERTAR UN ELEMENTO POR EL FIN


public void insertar (Vehiculo x )
{
if ( !colaLlena() )
{
// COLA NO LLENA
//DESPLAZAR fin A LA SIGUIENTE POSICION
if (fin == MAX)
{
fin= 1 ;
}
else
{
++fin;
}
// INSERTAR EL NUEVO ELEMENTO
elem[fin]=x;
}
}
} // FINAL DE LA CLASE COLA

class Operaciones
{
// INSERTAR N ELEMENTOS
public Cola insertarN(Cola co)
{
System.out.print("Nº de elementos= ");
int n=Leer.datoInt();
Vehiculo d;
for(int c=1;c<=n && !co.colaLlena();++c)
{
System.out.println("Dato "+c+" :");
d=new Vehiculo();
d.leer();
co.insertar(d);
}
return co;
}

// MOSTRAR
public void mostrar(Cola co)
{
Cola caux=new Cola(); // SE CREA UNA COLA AUXILIAR VACIA: caux
Vehiculo d;
while(!co.colaVacia())
{
// SE RECUPERA EL ELEMENTO DE LA FRENTE DE LA COLA co Y SE
LO MUESTRA
d=co.ver();
d.mostrar();
co.eliminar(); // SE ELIMINA EL ELEMENTO DE LA FRENTE DE
co
caux.insertar(d); // SE INSERTA EN LA FRENTE DE caux EL
ELEMENTO ELIMNADO DE co
} // AL FINAL LA COLA co QUEDA VACIA Y caux CON LOS ELEMENTOS
DE co, INVERTIDOS
// SE VACIAN LOS ELEMENTOS DE caux EN co,
QUEDANDO COMO ESTABAN ORIGINALMENTE
while(!caux.colaVacia())
{
d=caux.ver(); // SE RECUPERA EL ELEMENTO DE LA FRENTE DE
LA COLA caux
caux.eliminar(); // SE ELIMINA EL ELEMENTO DE LA FRENTE DE
caux
co.insertar(d); // SE INSERTA EN LA FRENTE DE co EL
ELEMENTO ELIMNADO DE caux
}
}

//CONTAR EL NÚMERO DE VEHÍCULOS CON MODELO ANTERIOR A UN MODELO DADO


public void modeloAnterior(Cola co)
{
Cola caux=new Cola();
Vehiculo d;
System.out.print("ingrese el modelo =");
int mod=Leer.datoInt();
int contador = 0;

while(!co.colaVacia())
{
d=co.ver();
if (d.modelo<mod)
{
contador++;
}
co.eliminar();
caux.insertar(d);
}
while(!caux.colaVacia())
{
d=caux.ver();
caux.eliminar();
co.insertar(d);
}
System.out.println("se encontraron "+contador+" vehiculos con
modelo anterior a el "+mod);
}

//MOSTRAR PLACA DE VEHÍCULOS CON MODELO MÁS RECIENTE


public void modeloReciente(Cola co)
{
Cola caux=new Cola();
Vehiculo d;
int c=0;
int modelo = 0;

while(!co.colaVacia())
{
d=co.ver();
if (c==0)
{
modelo=d.modelo;
c++;
}
if (d.modelo>modelo)
{
modelo=d.modelo;
}
co.eliminar();
caux.insertar(d);

}
while(!caux.colaVacia())
{
d=caux.ver();
if (d.modelo==modelo)
{
System.out.println(d.placa);
}
caux.eliminar();
co.insertar(d);
}
}
}

public class Main {

public static void main(String[] args)


{
Operaciones op=new Operaciones();
Cola c=new Cola();

c=op.insertarN(c);
op.mostrar(c);

System.out.println("MODELOS ANTERIORES:");
op.modeloAnterior(c);

System.out.println("PLACA DE VEHÍCULOS CON MODELO MÁS


RECIENTE:");
op.modeloReciente(c);
}

PRUEBAS DE ESCRITORIO:

También podría gustarte