Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
COLAS DEFINICIÓN DE UNA COLA Es una estructura de datos (TDA) caracterizado por: Es lineal Todos los elementos tienen el mismo tipo de dato Se tiene acceso a los extremos FRENTE y FIN: Se puede ver el elemento de la FRENTE Se puede eliminar el elemento de la FRENTE Se puede insertar un nuevo elemento por la FIN OPERACIONES PERMITIDAS EN UNA COLA VER EL ELEMENTO DE LA FRENTE ELIMINAR EL ELEMENTO DE LA FRENTE INSERTAR UN ELEMENTO POR EL FIN VERIFICAR SI LA COLA ESTÁ VACÍA VERIFICAR SI LA COLA ESTÁ LLENA (SI PUEDE LLENARSE) IMPLEMENTACIÓN DE UNA COLA UNA COLA PUEDE REPRESENTARSE MEDIANTE: UN VECTOR UNA LISTA ENLAZADA IMPLEMENTACION DE UNA COLA CON UN VECTOR * 5 10 LA CLASE COLA TIENE DOS CAMPOS: 1 VECTOR ELEM, DONDE ESTAN LOS ELEMENTOS DE LA COLA ELEM 1 2 3 4 . . . . . MAX 2 FRENTE (ENTERO) QUE CONTIENE LA POSICIÓN DEL ELEMENTO DEL FRENTE Y FIN LA DEL ELEMENTO DEL FIN FRENTE FIN 1 3 Definir una Cola de objetos de la clase Vehículo Leer N elementos Mostrar Contar el número de vehículos de una marca dada COLA DE OBJETOS Vehiculo placa marca Modelo leer() mostrar() Operaciones leer(p) mostrar(p) contarMarca(p) class Vehiculo { String placa,marca; int modelo; public 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.print("placa="+placa+ "\n marca="+marca +"\n modelo="+modelo); } } CLASE COLA public class Cola { // CAMPOS int frente, fin; Vehiculo [] elem; final int MAX = 50 ; // CONSTRUCTOR POR DEFECTO public Cola () { frente = fin = MAX; elem=new String [MAX+1]; } CLASE COLA // 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 ; } CLASE COLA // 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 ; } } CLASE COLA // 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 CLASE OPERACIONES 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.print("Dato"+c+"= "); d=new Vehiculo(); d.leer(); co.insertar(d); } return co; } CLASE OPERACIONES // MOSTRAR public Cola mostrar(Cola co) { Cola caux=new Cola(); // SE CREA UNA COLA AUXILIAR VACIA: caux caux.frente=co.frente; caux.fin = co.frente; 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 IGUAL A co ORIGINAL } return caux; } PROBLEMA DEFINIR LA CLASE COLA, CON OBJETOS DE LA CLASE VEHÍCULO. INSERTAR N ELEMENTOS MOSTRAR CONTAR EL NÚMERO DE VEHÍCULOS DE UN MODELO DADO ELIMINAR LOS VEHÍCULOS DE UNA MARCA DADA INSERTAR UN VEHÍCULO AL FRENTE DE LA COLA
Compartir