Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    1

    [JAVA] Esercizio Alberi Etichettati AIUTO!!!!

    Salve sono nuovo del forum!
    Sono uno studente alle prime armi e sto studiando Java, avrei un piccolo esercizio da proporvi che mi sta dando un pò di grattacapi.

    Esercizio:
    Definire una classe generica per gestire alberi con nodi etichettati. I nodi etichettati sono semplicemente oggetti di tipo qualsiasi che però implementano la seguente interfaccia:

    public interface Labeled {
    void setLabel(String lab); // imposta l'etichetta di questo oggetto a lab
    String getLabel(); // ritorna l'etchetta di questo oggetto
    }

    La classe deve implementare i seguenti costruttori e metodi:

    * un costruttore che un costruttore che prende in input un oggetto di tipo T che diventa il nodo radice dell'albero;
    * un metodo che ritorna true se un dato oggetto è un nodo dell'albero;
    * un metodo che ritorna il padre di un oggetto dato, se l'oggetto non è un nodo dell'albero lancia l'eccezione IllegalArgumentException;
    * un metodo che prende in input un nodo p e un oggetto x, entrambi di tipo T, e se p appartiene all'albero e x non vi appartiene e se inoltre l'etichetta di x è diversa dalle etichette di tutti i figli di p, allora aggiunge il nodo x all'albero come figlio di p e ritorna true, altrimenti ritorna false;
    * un metodo che prende in input una stringa e ritorna un insieme (creato ex novo) che contiene tutti i nodi dell'albero che hanno l'etichetta uguale alla stringa di input;
    * un metodo che preso in input un oggetto x di tipo T ritorna in un lista (creata ex novo) le etichette del cammino dalla radice a x, se x non appartiene all'albero ritorna null.


    la parte del costruttore e dei metodi penso di saperla abbastanza fare. Ora non capisco bene la parte in cui parla dell'interfaccia. Non capisco bene se la mia classe generica per utilizzare i metodi dell'interfaccia debba essere del tipo:

    public class TreeLabeled<T> implements Labeled{
    private Map<T,T> treeLab = new HashMap<T,T>();
    .....
    }

    Oppure io quando nella classe dichiaro il mio albero etichettato (uso le mappe), debba dichiarare ad esempio:

    Map<Labeled,T> treelab = new HashMap<Labeled,T>();

    Insomma non capisco bene come dichiare oggetti di tipo qualsiasi che implementano l'interfaccia Labeled.

    Spero che qualcuno abbia capito i miei vaneggiamenti vari.... :berto:

    Grazie per l'eventuale risposta.

  2. #2
    Ciao Sarm,
    per conservare la gerarchia dei nodi (non ti viene in mente XML?) ti
    consiglio di valutare la possibilità di estendere la classe che devi costruire, oltre che con l'interfaccia Labeled, anche con la classe IIOMetadataNode .

    Ha già tutto quello che ti serve.

    Buon Lavoro
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

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.