Ho creato questo programma, ma purtroppo non mi stampa la lista, sicuramente sbaglio qualcosa nel caricamento della lista (credo si sovrascrivano gli elementi)..
Questo è l'algoritmo..
codice:#include <stdio.h> #include <stdlib.h> struct elemento{ int valore; struct elemento *next; }; void menu(); void insElemento(); void delElemento(); void ordLista(); int main(){ int comando; menu(); printf("\nComando:\t"); scanf("%d", &comando); switch(comando){ case 1:{ insElemento(); break; } case 2:{ delElemento(); break; } case 3:{ ordLista(); break; } } return 0; } void menu(){ printf("--------------------------"); printf("\n1 - Inserisci Elemento\n"); printf("2 - Cancella Elemento\n"); printf("3 - Ordinamento Lista\n"); printf("--------------------------"); } void insElemento(){ struct elemento *list_pointer, *list_head, *list_record; int i, n=0, val, newval; printf("Specificare il numero di elementi della lista: "); scanf("%d", &n); //Inserimento del primo elemento list_record = (struct elemento *)malloc(sizeof(struct elemento)); printf("\nInserisci il 1 elemento: "); scanf("%d", &val); list_record->valore = val; list_head=list_record; list_pointer = list_head; //Inserimento degli elementi successivi for(i=2; i<=n; i++) { list_record->next = (struct elemento *)malloc(sizeof(struct elemento)); list_record = list_record->next; printf("\nInserisci il %d elemento: ", i); scanf("%d", &newval); list_record->valore = newval; list_head=list_record; list_pointer = list_head; } list_record->next = NULL; //Stampa della lista printf("\nlista -> "); while(list_record != NULL){ printf("%d", list_record->valore); // visualizza l’informazione printf(" -> "); list_record = list_record->next; //scorre di un elemento } printf(" NULL"); } void delElemento(){ int del; printf("Work in Progress"); } void ordLista(){ printf("Work in Progress"); }
Quindi ricapitolando, il problema sta nell'impossibilità di stampare la lista COMPLETA (stampa l'ultimo elemento inserito), per eventuali errori nell'inserimento.
Avete qualche idea di dove possa stare il problema?
Grazie in anticipo

Rispondi quotando