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 :
Vi sarei molto grato se qualcuno di buon cuore potrà darmi anche qualche piccolo suggerimento! Grazie!!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; }![]()

Rispondi quotando
Devo consegnarla corretta!
