Devo utilizzare la struttura dati Queue(CODA) che ha i seguenti metodi:

codice:
Restituisce il numero degli elementi  nella coda 
  public int size();
Restituisce true se la coda è vuota, false altrimenti 
  public boolean isEmpty();
Restituisce l'elemento al front della coda. 
  public Object front() throws EmptyQueueException;
Inserisce un elemento di tipo Object alla fine (rear) della coda 
  public void enqueue(Object o);
Rimuove, restituendolo, il primo elemento della coda (front) 
  public Object dequeue() throws EmptyQueueException;
devo scrivere una funziona che prende una coda e ritorna soltanto gli elementi in posizione dispari senza però modificare la coda passata. Come devo fare?? Queue copyOdd(Queue q)