Salve ragazzi, voglio stampare tutti gli elementi di un albero del genere:
utilizzando una visita postorder:
/**
* 0
* / / \ \
* 1 2 3 4
* / \ | / \ \
* 11 111 22 33 333 44
* / \
* 32 34
*
ho impostato cosi il mio Codice:
ce un unico problema che cosi nn mi stampa mai le foglie, ma appena trova un nodo che è foglia, risale al padre e me lo stampa 2 volte, se cambiocodice:public static void postorder(Tree<Integer>T, Position<Integer> root){ if(T.isExternal(root)){//parto dalla radice, verifico se il nodo è esterno return; }else for(Position<Integer> figli:T.children(root)){//altrimenti ciclo sui figli postorder(T,figli);//richiamo la funzione System.out.println("elemento"+root.element());//stampo gli elementi } }}{ non mi stampa nulla, xchè c'è la condizione di uscita, ma esiste un metodo generale che funzioni qualsiasi sia il mio scopo del programma?? in una visita postorer cosa è giusto verificare se il nodo è interno o se il nodo è esterno?? grazie!codice:if(T.isExternal(root)){, con if(T.isInternal(root))

Rispondi quotando