L'errore è nella funzione enqueue, che non riesco neanche a capire bene cosa faccia; un'implementazione (che aggiunge l'elemento davanti alla lista) potrebbe essere questa:
codice:
void coda::enqueue(int dato) {
  elem* nuovo=new elem;
  nuovo->info=dato;
  nuovo->next = lista;
  lista = nuovo;
}