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;

Rispondi quotando
