Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Java] StackOverflowError, non riesco a risolverlo.

    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
    - Il sistema gestisce il processore con politica Robin Hood -

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Linguaggio Java --> Forum Java.

    Sposto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.