Salve,
Scusate ho trovato questo algoritmo per l'attravversamento ricorscivo in preordine(prima la radice e poi i figli) di un albero ma non capisco perchè passa ricorsivamente come parametro anche l'indirizzo della funzione visit..perchè? non basta richiamare semplicemente visit(h) invece di (*visit)(h)??Il passaggio di un puntatore alla funzione in questo caso che utilità ha?
void traverse(link h, void (*visit)(link)){
if(h==NULL) return; //se è il ramo dx e sx di una foglia
(*visit)(h); //visito il nodo
traverse(h->l, visit);//vado a visitare il ramo sx
traverse(h->r, visit);//.. dx
}
Grazie!