Qualcuno potrebbe gentilmente aiutarmi a chiarire dei dubbi,sul comportamento di queste due funzioni.Sicuramente omettendo l'else il return finale viene eseguito sempre,ma non riesco a capire bene come si comporta la funzione,nel caso in cui entra nell'if precedente dove n<radice.In quel caso chiama la funzione con i nuovi paramatri e poi esegue l'ultimo return??
codice:
Node* findNode(InfoType n,Node* tree){
if(!tree) return 0; //albero vuoto
if(n==tree->label)return tree; //n==radice
if(n<tree->label) return findNode(n,tree->left); //n<radice
return findNode(n,tree->right); //n>radice
}
diverso da ..
codice:
Node* findNode(InfoType n,Node* tree){
if(!tree) return 0; //albero vuoto
if(n==tree->label)return tree; //n==radice
if(n<tree->label) {return findNode(n,tree->left);} //n<radice
else{
return findNode(n,tree->right); } //n>radice
}
grazie!!