Advertisement
nicb

ALBERO (carica - visualizza)

Feb 1st, 2018
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.61 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct info
  5. {
  6.     int numero;
  7. }info;
  8.  
  9. typedef struct albero
  10. {
  11.     info dati;
  12.     struct albero *dx;
  13.     struct albero *sx;
  14. }albero;
  15. typedef albero *palbero;
  16.  
  17. ///Prototipi di funzione
  18.  
  19. //gestione informazioni dell'albero
  20. void carica_info(info * );
  21. void stampa_info (info  );
  22.  
  23. //gestione albero
  24. palbero crea_albero(); //albero* crea_albero()
  25. palbero inserisci(palbero p, info dati);
  26. void visualizza (palbero p);
  27. int main()
  28. {
  29.     palbero nodo;
  30.     info appoggio;
  31.     int i,n;
  32.     nodo=crea_albero();
  33.     printf("Inserisci il numero di elementi da inserire:"); scanf("%d",&n);
  34.     for (i=0;i<n;i++)
  35.     {
  36.         carica_info(&appoggio);
  37.         nodo=inserisci(nodo,appoggio);
  38.     }
  39.     visualizza(nodo);
  40.     return 0;
  41. }
  42.  
  43. ///sviluppo funzioni
  44.  
  45. void carica_info(info *dato)
  46. {
  47.     system("cls");
  48.     printf("\nInseirisci il numero: "); scanf("%d",&dato->numero);
  49. }
  50. palbero crea_albero()
  51. {
  52.     return NULL;
  53. }
  54. palbero inserisci(palbero p, info dati)
  55. {
  56.     if(p==NULL)
  57.     {
  58.         palbero appoggio;
  59.         appoggio=(palbero)calloc(1,sizeof(albero));
  60.         appoggio->dati.numero=dati.numero;
  61.         return appoggio;
  62.     }
  63.     else if(p->dati.numero>dati.numero)
  64.     {
  65.         p->sx=inserisci(p->sx,dati);
  66.         return p;
  67.     }
  68.     else
  69.     {
  70.         p->dx=inserisci(p->dx,dati);
  71.         return p;
  72.     }
  73. }
  74. void stampa_info (info dato )
  75. {
  76.     printf("\n%d",dato.numero);
  77. }
  78. void visualizza (palbero p)
  79. {
  80.     if(p!=NULL)
  81.     {
  82.         visualizza(p->sx);
  83.         stampa_info(p->dati);
  84.         visualizza(p->dx);
  85.     }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement