Non ho capito perchè fai implementare l'interfaccia Comparator ad una struttura destinata a contenere dati. Dovresti spiegare questa scelta.

In genere, Comparator va definito per i dati che devono essere ordinati.

Quindi penso che dovresti definire una cosa tipo:
codice:
public class StrPriorityQueue<E> extends DataStruct<E>{
	
	private PriorityQueue<E> struct;
        private Comparator<E> c;	

	public StrPriorityQueue(Comparator<E> c){
		this.struct = new PriorityQueue<E>();
                this.c = c;
	}
}