Originariamente inviato da GliderKite
Ci sono essenzialmente tre tipi di visita ricorsiva di un albero binario: simmetrica, anticipata e differita. Tutte molto semplici. Ti faccio l'esempio dell'ultima:

codice:
void postOrder( TREENODE *treePtr )
{
    if( treePtr != NULL )
    {
         postOrder( treePtr->left );
         postOrder( treePtr->right );
         
         cout << treePtr->data;
     }
}

In questo caso il valore di ogni nodo non verrà visualizzato fino a quando non saranno visualizzati i valori dei propri figli.
Quelle sono le visite per profondità, mi domandavo se invece fosse possibile sviluppare in maniera ricorsiva anche la visita ampiezza. Purtroppo in internet ho trovato solo algoritmi iterativi (ed iniziavo a domandarmi se quindi era possibile o meno crearla ricorsiva).