Ciao. Innanzitutto grazie per la risposta.
Scusatemi per non aver utilizzato i tag ma non lo sapevo.
Hai ragione quando dici che il problema è sulla funzione ordina, infatti, come dici tu, all'ultima iterazione punta alla coda della lista che non ha un nodo prossimo.
Alla fine ho capito cosa mancava: far partire temp dalla testa della lista all'inizio di ogni iterazione del ciclo for esterno. Inoltre,l'istruzione temp=temp->next andava va messa alla fine del primo ciclo for.
Posto il codice della funzione ordina corretto:
codice:void ordina(polinomio *list) { polinodo *temp; temp=list->header; double c; unsigned int e; cout<<list->count<<endl; for(int i=0;i<(list->count);i++) { for(int j=0;j<(list->count)-1;j++) { if(temp->espon<temp->next->espon) { c=temp->coeff; e=temp->espon; temp->espon=temp->next->espon; temp->coeff=temp->next->coeff; temp->next->coeff=c; temp->next->espon=e; } temp=temp->next; } temp=list->header; } }

Rispondi quotando