Pages: [1]   Go Down
Print
Author Topic: Alberi Binari di Ricerca Iterativi  (Read 635 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Lynx90
Matricola
*
Offline Offline

Posts: 33



« on: 24-10-2010, 15:28:45 »

Salve a tutti, nn riesco a realizzare il metodo post Order dell'esercizio in oggetto,in pratica il risultato in output del mio programma è quasi identico a quello che richiede l'esercizio, tranne per il fatto che non viene visitato un nodo,quello con elemento (6,5) per la precisione,qualcuno sa come realizzare il metodo post Order in maniera iterativa?Posto il codice del mio metodo:
Code:
public Iterable<TNode<E>> postOrder(){
LinkedList<TNode<E>> lista=new LinkedList<TNode<E>>();
TNode<E> nodeTmp;

if(root.left()!=null){
nodeTmp=root.left();
while(nodeTmp.left()!=null || nodeTmp.right()!=null){
if(nodeTmp.left()!=null){
nodeTmp=nodeTmp.left();
}
else
nodeTmp=nodeTmp.right();
}
while(nodeTmp!=root){
for(TNode<E> x:children(nodeTmp))
lista.addLast(x);
nodeTmp=nodeTmp.parent();
}
lista.addLast(root.left());
}


if(root.right()!=null){
nodeTmp=root.right();
while(nodeTmp.left()!=null || nodeTmp.right()!=null){
if(nodeTmp.left()!=null){
nodeTmp=nodeTmp.left();
}
else
nodeTmp=nodeTmp.right();
}
while(nodeTmp!=root){
for(TNode<E> x:children(nodeTmp)){
E tmp=succesor(x.element());
lista.addLast(nodeWithElement(tmp));
}
nodeTmp=nodeTmp.parent();
}
lista.addLast(root.right());
}
lista.addLast(root);
return lista;
}

grazie in anticipo...  
« Last Edit: 24-10-2010, 15:30:58 by Lynx90 » Logged
Pages: [1]   Go Up
Print
Jump to: