Ciao a tutti!
qualcuno può spiegarmi la differenza tra questi due algoritmi ricorsivi e perchè uno funziona e l'altro no pur essendo teoricamente equivalenti?:
codice:void deleteTree(node* root) { if(root != NULL) { deleteTree(root->left); deleteTree(root->right); deallocateNode(root); } root=NULL; }gli algoritmi si occupano di eliminare tutti i nodi di un albero. Il primo non funziona (quando si prova a stampare l'albero eliminato vengono stampati caratteri a caso infiniti come se la radice non fosse impostata a null) mentre il secondo sì. Perchè? teoricamente sono equi valenti no?codice:node* deleteTree(node* root) { if(root != NULL) { deleteTree(root->left); deleteTree(root->right); deallocateNode(root); } return root=NULL; }

Rispondi quotando
