Sto cercando di scrivere una funzione che inverta una lista:
...il problema è che non so se funziona dal momento che inserendo questa nuova funzione non và la funzione di stampa della listacodice: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; }La cosa mi sembra assurda dal momento che, essendo il main questo :
..."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?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; }

La cosa mi sembra assurda dal momento che, essendo il main questo :
Rispondi quotando