Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct{
- int modello;
- int misura;
- int disponibilita;
- } capo;
- struct elist{
- capo* vestito;
- struct elist* next;
- };
- typedef struct elist* plist;
- typedef struct nodo_abr{
- capo* vestito;
- struct nodo_abr* sx;
- struct nodo_abr* dx;
- }nodo;
- typedef nodo* abr;
- int Minore(int m1, int s1, int m2, int s2){
- if(m1<m2)
- return 1; //(m1,s1) è considerato minore di (m2,s2)
- else if(m1==m2){
- if(s1<s2) return 1;
- }
- return 0;
- }
- int Uguale(int m1, int s1, int m2, int s2){
- return (m1==m2) && (s1==s2);
- }
- void inserisci(abr* a, int modello, int s, int d){
- if((*a)==NULL){
- capo* c = malloc(sizeof(capo));
- c->modello=m;
- c->misura = s;
- c->disponibilita = d;
- nodo* n = malloc(sizeof(nodo));
- n->vestito = c;
- n->sx = NULL;
- n->dx = NULL;
- (*a) = n;
- return ;
- }
- if(Uguale(m,s, (a*)->vestito->modello, (a*)->vestito->taglia)){
- /*Ho trovato la chiave procedo alla sostituzione della disponibilità*/
- (*a)->vestito->disponibilita = d;
- return;
- }
- if(Minore(m,s, (a*)->vestito->modello, (a*)->vestito->taglia)){
- inserisci(&((*a)->sx),m,s,d);
- }
- else{
- inserisci(&((*a)->dx),m,s,d);
- }
- }
- void stampa_albero(abr a){
- if(a == NULL) return;
- stampa_albero(abr->sx);
- printf("nodo corrente (%d, %d, %d)\n", a->vestito->modello, a->vestito->misura, a->vestito->disponibilita);
- stampa(albero->dx);
- }
- capo* ricerca(abr a, int modello, int taglia){
- if(a == NULL) return NULL;
- if(Uguale(modello, taglia, a->vestito->modello, a->vestito->misura)){
- return a;
- }
- if(Minore(modello, taglia, a->vestito->modello, a->vestito->misura))
- return ricerca (a->sx, modello, taglia);
- return ricerca (a->dx, modello, taglia);
- }
- int disponibilita(abr a, int modello, int taglia){
- capo* c= ricerca (a, modello, taglia);
- }
- int main()
- {
- abr
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement