1) Si, dovresti rendere Albero, friend di Nodo (o prevedere dei metodi get/set che di fatto rendono pubblici i dati privati) .
codice:
class Albero; // forward declaration
class Nodo {
 friend class Albero;
 // roba varia privata
}

class Albero { // etc }
Ora puoi accedere ai dati privati di nodo da Albero.

2) No. Mi riferivo a qualcosa di diverso. Ma dato che stai facendo un esercizio (con delle specifiche) non entro in dettagli fuorvianti dal problema posto (cosa che eventualmente si può fare in futuro quando tutto funziona).

3) Come sopra.