- Codice:
void Funzione(struct btree **ptrptr, struct list **tmptmp) {
if ((*ptrptr) != NULL) {
init(tmptmp); // inizializzo tmptmp, la nuova lista
if (((*ptrptr)->left_ptr == NULL) && ((*ptrptr)->right_ptr == NULL)) {
pre_insert(tmptmp,(*ptrptr)->value); //inserisco foglie nella nuova lista
}
else {
if ((*ptrptr)->left_ptr == NULL) {
Funzione((*ptrptr)->right_ptr, tmptmp);
}
if ((*ptrptr)->right_ptr == NULL) {
Funzione((*ptrptr)->left_ptr,tmptmp);
}
}
}
}
Mi interessa anche capire se va bene la parte dell'else, nella quale entro se l'elemento dell'albero non ha entrambi i figli nulli, cioè non è una foglia; se questo elemento ha il figlio destro nullo, allora fai la funzione nel sottoalbero sinistro, viceversa se ha il figlio sinistro nullo.
Grazie