
public class ColaConPrioridadEnlazada extends ColaEnlazada
{

    public void insertar(Object dato, Comparable clave)
    {
        if (primero == null || clave.compareTo(primero.getClave()) < 0) {
            Nodo nuevo = new Nodo(dato, clave, primero);
            primero = nuevo;
            if (ultimo == null) {
                ultimo = nuevo;
            }
        } else {
            Nodo actual = primero;
            while (actual.getSiguiente() != null
                    && clave.compareTo(actual.getSiguiente().getClave()) >= 0) {
                actual = actual.getSiguiente();
            }
            Nodo nuevo = new Nodo(dato, clave, actual.getSiguiente());
            actual.setSiguiente(nuevo);
        }
    }

    public static void main(String args[]) {
        ColaConPrioridadEnlazada cola = new ColaConPrioridadEnlazada();

        cola.insertar("t", "cl-t");
        cola.insertar("a", "cl-a");
        cola.insertar("m", "cl-m");
        cola.insertar("b", "cl-b");
        cola.insertar("0.1", "cl-0");
        cola.insertar("0.2", "cl-0");
        cola.insertar("0.3", "cl-0");
        cola.insertar("z", "cl-z");
        cola.insertar("primero", "a-primero");

        Object o;
        while ((o=cola.retirar()) != null) {
            System.out.println(o);
        }
    }
}

