Advertisement
Guest User

Untitled

a guest
Feb 13th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement