Laboratorio di Programmazione - A.A. 2004/05
Parte 1
Un albero n-ario è definito e formato da un nodo radice che puo' avere 0, 1 o più sottoalberi n-ari come figli (nota l'albero vuoto non e' considerato significativo).
Definire la classe Albero
con le seguenti funzioni:
Albero
rappresentanti i figli (sottoalberi) di
tale nodo radice;
null
altrimenti;
Parte 2
Realizzare una classe VisitaAlberi
contenente tre metodi statici che implementino rispettivamente
le procedure di visita in preordine, in postordine
e per livelli di un albero n-ario, effettuando la stampa
delle informazioni nei nodi.
Parte 3
La rappresentazione parentetica di un albero n-ario può essere definita come segue:
Alb -> ( e Alb1 ... Albn )
e
e' l'informazione sulla radice e Alb1 ...
Albn
(n >= 0) sono a loro volta alberi.
Esempio:
(A (B (C) (D) (E)) (F) (G) (H (I)))
Una grammatica non ambigua per rappresentare tali espressioni è
A -> ( B B -> i C C -> ) | ( B C
Realizzare una classe UtilitaAlberi
contenente due metodi statici:
Per l'analisi della stringa contenente la rappresentazione parentetica
di un albero si faccia uso della classe
TokenIterator.java.