Ciao a tutti!!!!
ho fatto un esame in cui ho una classe astratta con un metodo concreto toString(). Ho provato in tutti i modi a realizzarlo ma non sono venuto a niente. toString appunto ritorna una stringa e questo va fatto ricorsivo e non capisco come poterlo fare. Vi do la specifica della classe:
codice:
public abstract class BEalbero
{
// OVERVIEW: Un BEalbero e' un albero binario, in cui nodi e foglie sono etichettati con valori omogenei.
// Un BEalbero e' modificabile.
// Tipici valori astratti:
// n, se e' una foglia etichettata n
// ( n, a1, a2 ) , se e' un nodo etichettato n con sottoalberi a1 e a2
public abstract BEalbero sinistro() throws NotANode;
// EFFECTS: se this e' una foglia solleva NotANode, altrimenti
// ritorna il sottoalbero sinistro di this
public abstract BEalbero destro() throws NotANode;
// EFFECTS: se this e' una foglia solleva NotANode, altrimenti
// ritorna il sottoalbero sinistro di this
public abstract Object etichetta();
// EFFECTS: ritorna l'etichetta di this
public abstract boolean foglia();
//EFFECTS: se this e' una foglia ritorna true, altrimenti ritorna false
public abstract BEalbero nuovoalbero( Object x, BEalbero d ) throws ClassCastException, NullPointerException;
// EFFECTS: se x o d sono null solleva NullPointerException;
// se x oppure le etichette di d non hanno lo stesso tipo delle etichette di this, solleva ClassCastException;
// alstrimenti restituisce un nuovo BEalbero, la cui radice e' etichettata da x,
// e i cui sottoalberi sinistro e destro sono this e d.
public abstract void rimpiazzasinistro( BEalbero s ) throws ClassCastException, NullPointerException;
//EFFECTS: se s e' null solleva NullPointerException;
// se il tipo delle etichette di s e' diverso da quello delle etichette di this solleva ClassCastException, altrimenti
// rimpiazza il sottoalbero sinistro di this con s.
public String toString()
{
}
}
praticamente da questa bisogna creare due sottoclassi che la implementano, Nodo e Foglia in cui nodo ha l'etichetta e due sottoalberi e foglia ha solamente l'etichetta.
Metto in dubbuio la bonta' di questa scelta per realizzare l'albero ma cosi' e', forse e' per questo che nn riesco a fare toString. Potreste darmi qualche suggerimento?
Grazie!!!