/progetto-ASD

Il progetto consiste nella realizzazione di un albero m-ario mediante due classi: NodoMArio e AlberoMArio. Ogni nodo interno dell'albero conterrà una sola informazione di tipo String. Il costruttore della classe AlberoMArio deve ricevere come parametro l'arietà m dell'albero, ossia il numero di figli di ogni nodo.

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

Progetto di Laboratorio di Algoritmi e Strutture Dati

Corso di Laurea in Informatica, A.A. 2018-2019

Descrizione del Progetto

Il progetto consiste nella realizzazione di un albero m-ario mediante due classi: NodoMArio e AlberoMArio. Ogni nodo interno dell'albero conterrà una sola informazione di tipo String. Il costruttore della classe AlberoMArio deve ricevere come parametro l'arietà m dell'albero, ossia il numero di figli di ogni nodo. Funzionalità Richieste

Le classi NodoMArio e AlberoMArio devono implementare le seguenti operazioni:

Inserire la Radice:
    Inserire la radice con l'informazione specificata come parametro.

Inserire un Nuovo Nodo:
    Inserire un nuovo nodo V come figlio i-esimo di un nodo U già presente nell'albero. Il metodo riceve il padre del nuovo nodo, l'informazione del nuovo nodo e un intero i ∈ {1, 2, ..., m} che indica la posizione del figlio.

Inserire una Nuova Radice:
    Inserire una nuova radice in un albero non vuoto, rendendo la vecchia radice figlia i-esima della nuova radice, con i ∈ {1, 2, ..., m}.

Attraversamento in Profondità:
    Attraversare l'albero in profondità e restituire la lista delle informazioni dei nodi incontrati (visita anticipata).

Attraversamento in Ampiezza:
    Attraversare l'albero in ampiezza e restituire la lista delle informazioni dei nodi incontrati (visita per livelli).

Numero di Nodi Interni:
    Restituire il numero di nodi interni presenti nell'albero.

Numero di Figli Interni:
    Dato un nodo interno, restituire il numero dei suoi figli che siano nodi interni.

Lista dei Figli Interni:
    Dato un nodo interno, restituire la lista delle informazioni dei suoi figli che siano nodi interni.

Contenuto di un Nodo Interno:
    Restituire il contenuto di un nodo interno.

Cambiare il Contenuto di un Nodo Interno:
    Cambiare il contenuto di un nodo interno.

Restituire la Radice:
    Restituire la radice dell'albero.

Restituire il Padre di un Nodo Interno:
    Restituire il padre di un nodo interno.

Numero delle Foglie:
    Restituire il numero delle foglie dell'albero.

Altezza dell'Albero:
    Restituire l'altezza dell'albero.

Livello di un Nodo:
    Restituire il livello di un nodo.

Istruzioni per la Consegna

Il progetto può essere realizzato in piccoli gruppi di massimo tre persone.
Riportare all’interno del codice, all’inizio come commento, Nome, Cognome e Matricola di ogni autore.
Solo uno degli autori deve consegnare il progetto.
La consegna avviene tramite la piattaforma e-learning del corso.
Deve essere consegnata la cartella del progetto presente nello workspace di Eclipse. La cartella deve essere nominata con i cognomi degli autori in ordine alfabetico (Es: Bianchi Rossi Verdi).
Accertarsi di consegnare NON in modalità bozza.

Note Finali

Implementare metodi aggiuntivi per facilitare la visualizzazione dei vari parametri dell’albero o di un nodo.
Aggiungere commenti brevi ma chiari ai metodi implementati e descrivere brevemente le variabili utilizzate nelle due classi.