daily pastebin goal
57%
SHARE
TWEET

Untitled

a guest Feb 13th, 2018 49 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. typedef struct{
  6.     int modello;
  7.     int misura;
  8.     int disponibilita;
  9. } capo;
  10.  
  11. struct elist{
  12.     capo* vestito;
  13.     struct elist* next;
  14. };
  15.  
  16. typedef struct elist* plist;
  17.  
  18. typedef struct nodo_abr{
  19.     capo* vestito;
  20.     struct nodo_abr* sx;
  21.     struct nodo_abr* dx;
  22. }nodo;
  23.  
  24. typedef nodo* abr;
  25.  
  26. int Minore(int m1, int s1, int m2, int s2){
  27.     if(m1<m2)
  28.         return 1;       //(m1,s1) √® considerato minore di (m2,s2)
  29.     else if(m1==m2){
  30.         if(s1<s2) return 1;
  31.     }
  32.     return 0;
  33. }
  34.  
  35. int Uguale(int m1, int s1, int m2, int s2){
  36.     return (m1==m2) && (s1==s2);
  37. }
  38.  
  39. void inserisci(abr* a, int modello, int s, int d){
  40.     if((*a)==NULL){
  41.         capo* c = malloc(sizeof(capo));
  42.         c->modello=m;
  43.         c->misura = s;
  44.         c->disponibilita = d;
  45.        
  46.         nodo* n = malloc(sizeof(nodo));
  47.         n->vestito = c;
  48.         n->sx = NULL;
  49.         n->dx = NULL;
  50.        
  51.         (*a) = n;
  52.         return ;
  53.     }
  54.    
  55.     if(Uguale(m,s, (a*)->vestito->modello, (a*)->vestito->taglia)){
  56.         /*Ho trovato la chiave procedo alla sostituzione della disponibilit√†*/
  57.         (*a)->vestito->disponibilita = d;
  58.         return;
  59.     }
  60.    
  61.     if(Minore(m,s, (a*)->vestito->modello, (a*)->vestito->taglia)){
  62.         inserisci(&((*a)->sx),m,s,d);
  63.     }  
  64.     else{
  65.         inserisci(&((*a)->dx),m,s,d);
  66.     }
  67. }
  68.  
  69. void stampa_albero(abr a){
  70.     if(a == NULL) return;
  71.     stampa_albero(abr->sx);
  72.     printf("nodo corrente (%d, %d, %d)\n", a->vestito->modello, a->vestito->misura, a->vestito->disponibilita);
  73.     stampa(albero->dx);
  74. }
  75.  
  76. capo* ricerca(abr a, int modello, int taglia){
  77.     if(a == NULL) return NULL;
  78.     if(Uguale(modello, taglia, a->vestito->modello, a->vestito->misura)){
  79.         return a;
  80.     }
  81.      if(Minore(modello, taglia, a->vestito->modello, a->vestito->misura))
  82.          return ricerca (a->sx, modello, taglia);
  83.      return ricerca (a->dx, modello, taglia);
  84. }
  85.  
  86. int disponibilita(abr a, int modello, int taglia){
  87.     capo* c= ricerca (a, modello, taglia);
  88. }
  89. int main()
  90. {
  91.     abr
  92. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top