Salve, ho un problema con la stampa di una lista.
Ho questo codice per la struttura di una lista:
Queste invece sono le funzioni:codice:struct SNode{ int info; struct SNode *link; }; typedef struct SNode TNode; typedef TNode *TList;
La lista risulta NULL anche dopo l'inserimento dei nodi. Come devo fare?codice:TNode *crea_nodo(int info); void distruggiNodo(TNode *n); TList crea_lista(); TList distruggi_lista(TList n); void stampaLista(TList L); TList inserisciNodo(TList l, int info); int main(){ int i, num; TList l=crea_lista(); for(i=0;i<3;i++){ printf("insrisci valor: "); scanf("%d", &num); inserisciNodo(l, num); } stampaLista(l); distruggi_lista(l); return 0; } TNode *crea_nodo(int info){ TNode *n; n=(TNode *)malloc(sizeof(TNode)*1); n->info = info; n->link = NULL; return n; } void distruggiNodo(TNode *n){ free(n); } TList crea_lista(){ return NULL; } TList distruggi_lista(TList l){ TNode *n; TNode *m; n=l; while(n!=NULL){ m=n->link; distruggiNodo(n); n=m; } return NULL; } void stampaLista(TList L){ TNode *n; n=L; while(n!=NULL){ printf("%d ", n->info); n=n->link; } } TList inserisciNodo(TList l, int info){ TNode *p, *s, *n; p=NULL; s=l; //F1 RICERCA POSIZIONE while(s!=NULL && info>s->info){ p=s; s=s->link; } //F2 ALLOCAZIONE n=crea_nodo(info); if(p==NULL){ n->link=l; return n; }else{ n->link = s; p->link = n; return l; } }


Rispondi quotando