Salve ragazzi stò cercando di creare una lista in C++ e tutte le rispettive functions per la gestione della lista stessa.
Questo è il codice che ho implementato:
I miei dubbi sono questi:codice:#include <iostream> using namespace std; // dichiarazione della struttura "elemento" struct elemento { int info; struct elemento *punt; }; // prototipi delle funzioni struct elemento *aggiungiInfo(struct elemento *p); void visualizzaLista(struct elemento *p); int main() { struct elemento *lista=NULL; // puntatore della lista int oper; char next; cout<<"Decidi l'operazione da svolgere:"<<endl; cout<<"1) AGGIUNGI INFORMAZIONE"<<endl; cout<<"2) VISUALIZZA LISTA"<<endl; cin>>oper; do { if (oper == 1) { lista=aggiungiInfo(lista); } else if (oper == 2) { visualizzaLista(lista); } cout<<"Vuoi continuare? s/n:"<<endl; cin>>next; } while (next=='s' or next=='S'); } // corpo della funzione "struct elemento *aggiungiInfo()" struct elemento *aggiungiInfo(struct elemento *p){ struct elemento *successivo; int intero; cout<<"Inserisci numero > "<<endl; cin>>intero; if (p != NULL){ // aggiungo dinamicamente gli elementi successivi successivo=new elemento; successivo->info=intero; successivo->punt=p; }else{ // creazione del primo elemento p=new elemento; p->info=intero; p->punt=NULL; // assegno p a successivo successivo=p; } // visualizzo la lista parziale ad ogni inserimento visualizzaLista(p); return (successivo); } // corpo della funzione "visualizzaLista" void visualizzaLista(struct elemento *p){ if (p == NULL) { cout<<"Nessun informazione presente nella lista"<<endl; }else{ // stampo la lista while(p != NULL){ cout<<"Numero > "<<p->info<<endl; p=p->punt; } } return; }
1)Come mai quando inserisco il primo elemento(es. 46) nella lista, me lo inserisce ma non me lo visualizza, quando inserisco il secondo elemento(es. 72), me lo inserisce ma mi fà visualizzare quello precedente, ovvero 46. Se ne inserisco un altro(es. 89) , mi visualizza 46 e 72 e così via.
2)Come posso modificare il codice per far si che ad ogni inserimento ritorno di nuovo al menu iniziale, dove mi chiede di aggiungere un informazione o visualizzare la lista?
3)C'è qualcuno che sà spiegarmi in modo davvero semplice la function "aggiungiInfo"? dalla dichiarazione fino al return.
Grazie anticipatamente,
Gaten