Il professore ci ha dato delle funziononi tipo, di esempio che dobbiamo usare per gestire le liste. Il problema è che la funzionzione che dovrebbe leggere una stringa da tastiera si blocca e non capisco proprio perchè!
la funzione è questa:
codice:
pnodo leggi(){
int x;
pnodo testa,ultimo;
int n,i;
cout << "Inserire il numero di elementi: ";
cin >> n;
if(n==0) return 0;
for(i=0;i<n;i++){
cout << "Inserire il "<< i+1 <<" elemento: ";
cin >> x;
if(i==0){
testa=cons(x,0);
ultimo=testa;
}else{
pnodo nuovo=cons(x,0);
ultimo->next=nuovo;
ultimo=nuovo;
}
}
return testa;
legge un una sequenza di numeri e la mette in una lista pnodo.
La lista pnodo è fatta cosi:
codice:
struct nodo{
int key;
nodo* next;};
typedef nodo* pnodo;
nella funzione leggi() viene chiamata un altra funzione per la creazione di una lista:
(gli viene passato 0 come secondo parametro per crearla vuota di un solo elemento, senno l'ind precedente)
codice:
pnodo cons(int x, pnodo testa){
pnodo nuovo=new nodo;
nuovo->key=x;
nuovo->next=testa;
}