Salve! Ho implementato questa semplice lista linkata, in cui devo collegare tra loro due o più box tramite l'utilizzo di puntatori, ma la funzione che ho utilizzato nel mio programma, point_at_next() non fa bene il suo compito. Qualcuno può gentilmente suggerirmi dove sbaglio? E' da troppo tempo che ci provo ormai..![]()
Ecco qui il mio codice :
codice:#include <iostream.h> using namespace std; class BOX { private: int a; BOX *next; public: BOX(void) { a = 0; next = NULL; } void set(int n) { a = n; } void point_at_next(BOX *last, BOX *nuovo_scat) { last->next = nuovo_scat; last = nuovo_scat; } int leggiDato(void) { return a; } void stampa(BOX *start); }; void BOX::stampa(BOX *start) { BOX *p; p = start; if (p == NULL) cout << "Lista vuota!\n"; else { cout << "Gli elementi della lista sono : " << p->a; p = p->next; } } main() { BOX *st = NULL; BOX *ultimo, *nuovo; int num = 0; BOX *box; int scelta = 0; BOX(); do { cout << "--------------------------------------------------------------------------------\n"; cout << " LISTA LINKATA \n"; cout << "--------------------------------------------------------------------------------\n\n"; cout << "Digita '0' per aggiungere un nuovo elemento alla lista; '1' per collegare \n"; cout << "l'ultimo elemento della lista col nuovo; '2' per stampare la lista; '99' per \n"; cout << "uscire dal programma.\n\n"; cout << "Effettua una scelta: "; cin >> scelta; switch (scelta) { case 0 : cout << "Inserisci il numero da aggiungere alla lista : "; cin >> num; box = new BOX; box->set(num); break; case 1 : box->point_at_next(ultimo, nuovo); break; case 2 : box->stampa(st); break; case 99 : cout << "Uscita dal programma!\n\n"; break; default : cout << "Sorry! Bad menu selection!\n\n"; break; } } while (scelta != 99); system("pause"); return 0; }


Rispondi quotando