Salve avrei bisogno di aiuto a compredere questo codice:
è un semplice metodo che conta le foglie in un albero di ricerca.codice:public int contaFoglie() { return (left.empty() && right.empty()) ? 1 : left.contaFoglie()+right.contaFoglie(); }
Il mio problema sta nel capire come agisce, nel senso: Se left e right sono empty, mi ritorna 1 perchè vuol dire che c'è solo la radice. Se invece ci sono altri nodi? Non capisco quel "+" in mezzo alle chiamate di left.contaFoglie() e right.contaFoglie(). E' come se nel ramo else fossero messi in colonna quindi prima finisce di controllare il ramo Left e poi esegue right.contaFoglie()? E poi, come avviene il conteggio? Usando una classe di testing funziona ma non capisco dove salvi o come conteggi il numero di foglie.
Grazie per un eventuale risposta