Ragazzi, chi mi sa dire per favore come mai la mia coda risulta sempre vuota?? Ho fatto tantissimi tentativi.. debug.. ma niente.. Ogni dato che inserisco va nel primo elemento e non si aggiunge al successivo , così non si crea mai la coda, risultando vuota! Ve la posto :

codice:
#include <iostream>                      
using namespace std;


class Coda {
  private :  
    int dato;
    Coda *successivo;
	
    public :   
      void enqueue(Coda* ultimo, Coda *start, int d); 
      void dequeue(Coda *start);
      bool isEmpty(Coda *start);
      int visualizza(Coda *start);
};

void Coda::enqueue(Coda *ultimo, Coda *start, int d) {
  Coda *nuovo;                                                  
  Coda *temp;
             
  if(start == NULL) {                     
    nuovo = new Coda();                    
    nuovo->dato = d;
        
    ultimo = nuovo;
    start = nuovo;                                            
  } else {
            nuovo = new Coda();         
            nuovo->dato = d;
            
            ultimo->successivo = nuovo;  
            ultimo = nuovo;
    }    
} /* End enqueue(). */

void Coda::dequeue(Coda *start) {
  Coda *temp;
  
  temp = start;   // Utile per l'eliminazione dell'elemento in testa.
  cout << "L'elemento da eliminare e' il seguente ---> [ " << start->dato << " ]\n\n"; 
  start = start->successivo;
  
  delete temp;    
} /* End dequeue(). */

bool Coda::isEmpty(Coda *start) {
  if(start == NULL)
    cout << "La coda e' vuota!\n";
      else
        cout << "Sono presenti degli elementi all'interno della coda.\n"; 
} 

int Coda::visualizza(Coda *start) {
  Coda *temp;
  
  temp = start;
  
  if(start == NULL)
    cout << "La coda e' vuota!\n";
      else {
              while(temp != NULL) {
                cout << " <--- [ " << temp->dato << " ]";
                temp = temp->successivo;
              }
      }
}  


main() {
  // Dichiarazione della variabili : 
  Coda *Start = NULL;
  Coda *last;
  int num;
  int opzione;
  
  last = Start;
  
  do {
  	    cout << "Scegli una della opzioni seguenti : \n\n"
  	            "1 ---> Enqueue;\n"
  	            "2 ---> Dequeue;\n"
  	            "3 ---> isEmpty;\n"
  	            "4 ---> visualizza;\n"
  	            "0 ---> Exiting program!\n\n"
  	            "Inserisci qui la tua scelta : ";
        cin >> opzione;
        cout << "\n\n";
        
        switch(opzione) {
		  case 1 :
            cout << "Digita l'elemento da inserire nella coda : ";
            cin >> num;
            cout << "\n"; 
            last->enqueue(last, Start, num);
	      break;
	    
	      case 2 : 
            Start->dequeue(Start);
          break;
		  
		  case 3 :  
            Start->isEmpty(Start);	    
          break;
          
		  case 4 : 
            Start->visualizza(Start);
		  break;
		  
		  case 0 : 
		    cout << "Exiting program!\n\n";
		  break;
		  
		  default : 
		    cout << "Wrong choice!\n\n";
		  break;
	    }
  } while(opzione != 0);
  
system("PAUSE");
return 0;
}
Vi sarei molto grato se qualcuno di buon cuore potrà darmi anche qualche piccolo suggerimento! Grazie!!