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