Sto cercando di scrivere una funzione che inverta una lista:
codice:
t_list inverti_lista(t_list lista)
{
t_node*curr;
t_node*first;
curr=lista;
first=lista;
while((curr->link)!=NULL)
{
(curr->link)->link=curr->link;
curr=curr->link;
}
first->link=NULL;
lista=curr;
return lista;
}
...il problema è che non so se funziona dal momento che inserendo questa nuova funzione non và la funzione di stampa della lista
La cosa mi sembra assurda dal momento che, essendo il main questo :
codice:
int main()
{
int scelta=1;
t_list lista;
t_info inf;
lista=list_create();
while(scelta!=0)
{
inf=read_info();
lista=list_insert(lista,inf);
printf("Vuoi inserire un altro elemento? 1/0 \n");
scanf("%d",&scelta);
}
printf("La lista letta e' : \n");
print_list(lista);
printf("Inserire il nome da cancellare\n");
inf=read_info();
lista=node_delete(lista,inf);
printf("La lista dopo la cancellazione:\n");
print_list(lista);
lista=inverti_lista(lista);
printf("Lista invertita:\n");
print_list(lista);
return EXIT_SUCCESS;
}
..."lista_inverti" viene chiamata dopo la "print_lista". Se inserisco la chiamata della funzione invertente come un commento il programma fa quello deve fare, altrimenti non entra proprio nella print_list e sta ad aspettare come se dovessi inserire un carattere....qualche idea?