Ok, penso si imponga una premessa...
mi sto preparando per l'esame di fondamenti di informatica...non pensare ora di trovarti di fronte una ragazzina...ho quarant'anni suonati e questo è il mio tentativo di mettere in cantiere la mia seconda laurea...giusto per non sentirmi troppo vecchia!!!
Mi sono iscritta ad ingegneria informatica perchè ho bisogno per il mio lavoro di ricerca in campo medico di una preparazione in fisica ed analisi di cui allo stato attuale non dispongo ed ingegneria informatica è l'unica che al politecnico si possa seguire online...con due figli e un lavoro a tempo pieno( dalle 8 alle 12 ore al giorno ) non posso anche andare a lezione!!
tutto ciò per dire che non ho nessuna preparazione pregressa in campo informatico, ciò che so l'ho imparato al corso, non conosco la std::list e la std:queue e devo imparare a costruire queste semplici liste che sono sicuramente banalissime per te ma non lo sono altrettanto per me!
e siccome ogni volta che uso i puntatori mi incasino per un motivo o per l'altro vorrei cercare di mettere dei punti fermi!
Scusa la lunga premessa...
Comunque ho provato a riscrivere il codice (che ovviamente ancora non funziona dopo tutta la spremitura della mia ormai decadente materia grigia per cercare di fare quanto mi hai spiegato...cosa ho combinato adesso???
#include<iostream>
using namespace std;
using std::cout;
using std::cin;
using std::endl;
struct nodo{
int num;
nodo*succ;
};
nodo* inserisciElemento (nodo* &,int);
int stampaLista(nodo*);
int main()
{int value;
int pausa;
char op;
nodo*testa=NULL;
nodo*temp=NULL;
do
{
cout<<"i per inserire, u per uscire: "<<endl;
cin>>op;
cout<<"la lista attuale è la seguente: "<<endl;
stampaLista(testa);
if (op=='i')
{
cout<<"inserisci il numero: "<<endl;
cin>>value;
testa=inserisciElemento(testa,value);
cout<<"lista aggiornata: "<<endl;
stampaLista(testa);
}
else if (op!='u')
cout<<"operazione non valida"<<endl;
} while (op != 'u');
return 0;
}
nodo* inserisciElemento (nodo* &lista, int nr)
{
nodo*nuovo;
nuovo=new nodo;
nuovo->num=nr;
nodo*p; //puntatore di servizio
p=lista;
if(p!=NULL) //la lista non è vuota
{
while(p->succ)
{
p=p->succ; //scorro la lista cercando l'ultimo elemento
}
p->succ=nuovo;
}
else //la lista è vuota
lista= nuovo;
return lista;
}
int stampaLista(nodo*lista)
{
nodo*ptr;
ptr=lista;
if (lista==NULL)
{
cout<<"lista vuota"<<endl;
}
else
{
for(ptr=lista;ptr->succ=NULL;ptr=ptr->succ)
cout<<ptr->num<<endl;
}
cout<<endl;
cout<<"pausa"<<endl;
cin>>pausa;//altrimenti dev c++ non mi fa vedere l'anteprima ed è il compilatore dell'esame
return 0;
}
Grazie mille per la tua pazienza e il tuo prezioso aiuto