dovrei fare un metodo che sia iterativo per visitare l' albero e restituirmi una lista ordinate che contiene il nodo e la sua relativa altezza. Ma il conteggio del sottoalbero destro viene sbagliata, cm posso aggiustare il codice?. L' albero è un BST
codice:
public List Beta (List output, int liv ) {
IntBTNodo p = root;
Stack pila = new Stack ( );
if(p!=null) {
pila.Push(p);
while (!pila.IsEmpty()) {
p = (IntBTNodo)pila.Pop();
if(!pila.IsEmpty() || p.right == null || p.left == null ) {
liv=liv+1;
}
output.InsertOrdered(p.visit(),liv);
if(pila.IsEmpty() && (p.right == null || p.left == null)) {
liv = 0;
}
if(p.right == null && p.left == null) {
liv = liv-1;
}
if(p.right != null) pila.Push(p.right);
if(p.left != null) pila.Push(p.left);
}
}
return output;