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:
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.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() { } }
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!!!

Rispondi quotando