Salve. Volevo farvi alcune domande riguardanti l'implementazione di Binary Tree in Java.
1) Dato un albero binario radicato in v l'altezza di questo albero binario è l'altezza di v?
2) Se voglio calcolarmi l'altezza di un certo albero (o sottoalbero) l'algoritmo migliore è quello che ho scritto alla fine? Questo algoritmo parte dalla definizione per cui l'altezza di un nodo v è data dal valore massimo tra altezza del nodo sinistro e del nodo destro sommata a 1.
3) Ora il mio problema è di trovare un metodo il più efficiente possibile che mi permetta di calcolare l'altezza di ogni nodo dell'albero... Ovviamente la soluzione deve passare per forza dall'uso di un algoritmo per calcolare l'altezza molto efficiente, e inoltre di un modo per visitare l'albero completamente. E anche su questo avrei i miei dubbi perché di modi per visitare l'albero non ce ne sono pochi...
Se qualcuno ha qualche consiglio sarei molto felice di ricevere un aiuto.
Vi ringrazio anticipatamente

height(T, v)
if v == null
return 0;
else
max(height(v.Left), height(node.Right)) + 1