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:
codice:
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
      }
      }}
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 cambio
codice:
 if(T.isExternal(root)){, con if(T.isInternal(root))
{ 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!