Ciao sottovento,
grazie per la tua risposta, per la costruzione dell'automa ho creato tre classi: Stato, Transizione ed Automa. La classe Stato ha come proprietà il numero indicante lo stato ed un arraylist per gestire le epsilon transizioni nonché una mappa per la gestione delle transizioni ordinarie. La particolarità di tali automi risiede nell'avere tra i possibili stati anche quelli di tipo contatore, il cui scopo è contare quante occorrenze di un determinato simbolo, che vanno da un numero minimo ad un numero massimo, ci sono. Una prima implementazione prevedeva l'uso si Set per la gestione delle transizioni, che per la parte delle transizioni ordinarie funzionava correttamente, ma adesso con la costruzione dell'albero mi trovo confusa. Alla fine ho creato una nuova classe Nodo che mi permette di creare, a seguito di una transizione, un nuovo nodo all'interno dell'albero, quindi quando leggo un carattere creo il nuovo nodo con il riferimento al padre; ma il tutto non funziona correttamente poiché quando si incontrano stati di tipo contatore dovrei scorrere l'albero dalla radice fino al nuovo nodo che devo inserire nell'albero e capire se lungo il percorso c'è un nodo uguale, se si devo incrementare di 1 il valore di una variabile dello stato contatore.
Non so se sono stata chiara, ad ogni modo adesso non riesco a capire come scandire l'albero in contemporanea alla sua creazione.
Potreste darmi qualche suggerimento?
Grazie a tutti