Advertisement
nicb

carica e stampa una lista

Jan 30th, 2018
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.24 KB | None | 0 0
  1. //carica e stampa una lista
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. typedef struct lista
  7. {
  8.     int dato;
  9.     struct lista *next;
  10. }lista;
  11.  
  12. lista* crea_testa();
  13. lista* carica(lista *p, int i);
  14. void visualizza(lista *testa);
  15.  
  16. int main()
  17. {
  18.     lista *testa, *p;
  19.     testa= (lista *)calloc(1, sizeof(lista));
  20.     int n,i;
  21.     printf("Inserisci il numero di elementi da inseirire nella lista: ");
  22.     scanf("%d",&n);
  23.     if (n==1)
  24.     {
  25.         testa=crea_testa();
  26.         //p=testa;
  27.     }
  28.  
  29.     else
  30.     {
  31.  
  32.          testa=crea_testa();
  33.          p=testa;
  34.          for (i=1;i<n;i++)
  35.          {
  36.              p=carica(p,i);
  37.  
  38.          }
  39.     }
  40.     visualizza(testa);
  41.  
  42.     return 0;
  43. }
  44. lista* crea_testa()
  45. {
  46.     lista *app;
  47.     app= (lista *) calloc(1,sizeof(lista));
  48.     printf("inserisci il 1 elemento della lista: ");
  49.     scanf("%d",&app->dato);
  50.     return app;
  51. }
  52. lista* carica(lista *p, int i)
  53. {
  54.     lista *app;
  55.     app= (lista *) calloc(1, sizeof(lista));
  56.     p->next=app;
  57.     printf("inserisci il %d elemento della lista: ",i+1);
  58.     scanf("%d",&app->dato);
  59.     return app;
  60. }
  61. void visualizza(lista *testa)
  62. {
  63.     if(testa!=NULL)
  64.     {
  65.         printf("%d\t",testa->dato);
  66.         visualizza(testa->next);
  67.     }
  68.  
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement