Ciao a tutti! Mi sono appena iscritta su questo forum per consiglio di un amico.
Ho bisogno di una mano per un progetto in Java (un esame della laurea triennale in informatica, quindi una cosa stupida e inutile ma che va fatta).

Il da farsi e' abbastanza banale. Si tratta di un insieme di interi positivi da implementare con un albero binario di ricerca. Incollo la traccia del progetto per evitare incomprensioni:

Il progetto riguarda la scrittura di una package ins che implementa gli insiemi di interi non
negativi mediante un albero binario di ricerca non necessariamente bilanciato.
Particolare cura deve essere riservata alla efficienza dell’implementazione.
Il bilanciamento dell’albero non (dicesi non) è richiesto.
NOTE
• La struttura delle classi non può essere modificata.
• Le firme dei metodi non possono essere modificate.
• L’iteratore non deve essere implementato.
• Non si possono usare strutture delle API di Java
• La specifica “dimensioni massime limitate solo dalla memoria disponibile” significa
che il programma usa la memoria disponibile, come visto a lezione, senza limiti predefiniti.
In piu' viene fornita l'interfaccia Insieme che andra' poi implementata nella classe da completare SimpleTreeSet.

Ho implementato i metodi richiesti (perche' si vuole un'implementazione parziale, quindi alcuni dei metodi dell'Interfaccia non vanno cacati).
Ho compilato tutto, programma di prova (dato dal prof) compreso.
Finche' la computazione viene fatta su piccole quantita' di dati tutto ok, quando le inserzioni diventano 1000000 il programma si blocca per colpa di un StackOverflowError.

Ho gia' tentato di aumentare le dimensioni dello stack manualmente, ma ottengo comunque una
OutOfMemoryException e mi viene segnalato il metodo put (che inserisce gli elementi).
Siccome l'avevo implementato ricorsivamente, e avevo letto che la ricorsione puo' essere una delle principali cause di quell'eccezione, ho provato a implementarlo iterativamente, ma ho ottenuto lo stesso risultato.
A questo punto non saprei cosa fare per evitare l'errore, considerando che non posso modificare il main, ne' la struttura delle classi, infatti la classe che definisce un nodo e' interna a quella che definisce l'insieme.

Qualcuno ha qualche idea? Vi sarei infinitamente grata