Crear las clases "PilaFrases" y "ColaFrases", que permitan crear, como su nombre indica, una pila y una cola, respectivamente, de String. Cada clase tendrá los atributos necesarios y las funciones que permitan trabajar con los objetos PilaFrases y ColaFrases, modificándolos o, simplemente, consultando determinados datos.
PilaFrases
public class PilaFrases { private String[] frases; private int cima; PilaFrases(){ frases = new String[10]; cima = -1; } PilaFrases(int numero){ frases = new String[numero]; cima = -1; } public void push (String frase){ if (cima < frases.length){ cima++; frases[cima] = frase; } } public String pop (){ cima--; return frases[cima+1]; } public boolean empty(){ /*boolean vacia; if (cima == -1) vacia = true; else vacia = false;*/ return cima == -1; } public boolean full(){ /*boolean llena; if (cima == (frases.length-1)) llena = true; else llena = false;*/ return cima == (frases.length-1); } }
ColaFrases
public class ColaFrases { private String[] tabla; private int primero, ultimo; ColaFrases(){ this(10); } ColaFrases(int tamaño){ tabla = new String[tamaño+1]; primero = 0; ultimo = -1; } public boolean llena(){ return sig(sig(ultimo)) == primero; } public boolean vacia(){ return sig(ultimo) == primero; } private int sig(int actual){ return (actual+1)%tabla.length; } public void acolar(String frase){ if (this.llena()) throw new IndexOutOfBoundsException("La cola está llena"); ultimo = sig(ultimo); tabla[ultimo] = frase; } public String desacolar(){ String aux; if (this.vacia()) throw new IndexOutOfBoundsException("La cola está vacía"); aux = tabla[primero]; primero = sig(primero); return aux; } }
No hay comentarios:
Publicar un comentario