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!!