Sfortunatamente ho perso il codice del primo esercizio, e, rifacendolo sto avendo un enorme problema.
Volevo risolverlo creando una classe Albero, definendola come abbiamo visto in classe/laboratorio, ovvero che ad ogni oggetto di tipo Albero, assegno il suo valore, e una lista figli, i cui elementi saranno ovviamente altri oggetti di tipo albero, per poter svolgere il calcolo dell'altezza ricorsivamente.
Il problema è che, quando vado ad aggiungere uno di questi oggetti alla lista figli di un altro, mi si aggiunge una volta alla lista come oggetto, che però ha a sua volta lo stesso oggetto come figlio, ripetendo questa cosa all'infinito, e per tutti gli oggetti Albero definiti.
Allego una minuscola parte di comandi che ho dato in console per farmi capire meglio:
Se ad esempio faccio questo
a = Albero(1, figli=[Albero(2)])
c = Albero(3)
Io poi potrò fare a.figli[0].figli[0].figli[0].........figli[0] all'infinito, e otterrò l'oggetto Albero(2) come risultato. E lo stesso posso fare con b o c, anche se non ho aggiunto nulla alla loro lista figli.
Ovviamente questo problema, oltre a impedirmi la ricorsione, mi impedisce di fare qualsiasi cosa con questi oggetti, e mi fa morire il Kernel ogni volta.