il modo migliore è son-brother, ma da come descrivi la struct sembra sia già in quella forma. quindi il tuo albero generico è già memorizzato in una struttura dati ad albero binario, devi solo imparare ad usarla.
un albero son-brother, come dice il nome stesso, è un albero in cui ogni nodo punta ad un figlio e ad un fratello. di solito a sinistra c'è il figlio e a destra il fratello. in c la struct sarebbe tipo questa
Codice:
struct nodo
{
int label;
nodo* son;
nodo* brother;
}
ovviamente un nodo che è l'ultimo dei suoi fratelli avrà puntatore destro nullo, mentre un nodo senza figli avrà puntatore sinistro nullo.
il risultato è questo (le frecce orizontali indicano il puntamento di destra, ovvero ai fratelli, quelli verticali indicano il puntamento a sinistra, ovvero ai figli):