bool AlberoBinario :: Inserisci(const int t) {
Record* punt = new Record;
punt->i=t; // costruisco il nuovo elemento (sarà una foglia)..
punt->dest=0;
punt->sin=0;
punt=radice; // il confronto parte dalla radice
_Inserisci(punt->i, punt); // poi vedo dove deve essere inserito..
return(punt);
}
void AlberoBinario :: _Inserisci(const int t, Record*& p ) {
if( t > p->i ) {
if(p->dest==0) // se a destra non c'è niente..
p->dest = p; // collego il nuovo elemento all'albero..
else {
p=p->dest;
_Inserisci(t, p); // sul nodo ripeto le stesse operazioni precedenti
}
}
if( t < p->i ) {
if( p->sin==0 ) // se a sinistra non c'è niente
p->sin = p; // collego il nuovo elemento all'albero..
else {
p=p->sin;
_Inserisci(t,p); // sul nodo ripeto le stesse operazioni precedenti
}
}
}