PDA

Visualizza la versione completa : [C++] [Alberi] max e min nodi radicati


Tigre851
05-04-2005, 21:12
struct nodo{
int info;
int min;
int max;
nodo *left;
nodo *right;
};


la seguente funzione dovrebbe, dato il puntatore alla radice di un albero BST, scrivere nei campi max e min di ciascun nodo il valore max e min dei campi info dei nodi in esso radicati... solo che non va... qualcuno in grado di aiutarmi? grazie!



void aggiorna(nodo *t, int &max, int &min){
if (t==NULL){
max=0;
min=0;
}else{
if ((t->left == NULL) && (t->right == NULL)){
max = t->info;
min = t->info;
return;
}
if(t->left != NULL)
aggiorna(t->left,max,min);
if(t->right !=NULL)
aggiorna(t->right,max,min);
if (max < t->info)
max=t->info;
if(min>t->info)
min=t->info;


}



}

Tigre851
05-04-2005, 21:37
ho dato una sistemata solo che ancora non va... un aiutino...


void aggiorna(nodo *&t){
if (t==NULL){
return;
}else{
if ((t->left == NULL) && (t->right == NULL)){
t->max = t->info;
t->min = t->info;
return;
}
aggiorna(t->left);
aggiorna(t->right);
if(t->left != NULL){
if (t->left->max < t->info){
t->max = t->left->max;
}
if (t->left->min > t->info){
t->min = t->left->min;
}
}
if(t->right!=NULL){
if (t->right->max < t->info){
t->max = t->right->max;
}

if (t->right->min > t->info){
t->min = t->right->min;
}
}
}


}

Loading