// classe Coda implementata con Lista semplice di oggetti
public class LLCodaObject {
private ListaComparable elem;
//costruttori
public LLCodaObject() {
elem = new ListaComparable();
}
//metodi canonici
public boolean IsEmpty() {return elem.IsEmpty();}
public void Clear() {
try {
while(true)
elem.DeleteHead();
} catch (EmptyListException e) {}
}
public void EnQueque(Object val) {
elem.InsertTail(val);
}
public Object DeQueque() {
if (IsEmpty())
throw new CodaEmptyException();
return elem.DeleteHead();
}
public Object HeadElem() {
if (IsEmpty())
throw new CodaEmptyException();
elem.rewind();
return elem.getNextElem();
}
}
//Eccezione personalizzata per la classe Coda.
class CodaEmptyException extends RuntimeException {
public CodaEmptyException() {
super("Coda Vuota.");
}
public CodaEmptyException(String msg) {
super(msg);
}
}