Ciao a tutti vi prego aiutatemi sono disperato domani ho un esame e potre bbe uscire un esercizio sugli alberi in cui mi servirebbe passare a una funione ricorsiva ogni volta un sottoalbero diverso pertanto mi servirebbe calcolarmelo iterativamente rimuovendo di volta in volta la root.
L'albero non è binario.

qualcuno puo aiutarmi?


oltre ai metodi dell'interfaccia Tree(tranne quelli che restituiscono iteratori di tutti i nodi---children lo posso usare) posso utilizzare i seguenti metodi:

codice:
public static class ExamTree<E> extends LinkedTree<E> implements Tree<E> {  	
		

public Position<E> examAddRoot(E e) {
	size = 1; 	
	root = examCreateNode(e, null, null); 				
return root; 			
}  	
		

// aggiunge a v un figlio che ha come elemento element 			

public Position<E> examAddChild(E element, Position<E> v) { 				
size++; 				
Position<E> newP = examCreateNode(element(TreePosition<E>)v,	null); 				
if (isExternal(v)) { 					
PositionList<Position<E>> figli = new NodePositionList<Position<E>>(); 			
((TreePosition<E>) v).setChildren(figli); 				
figli.addLast(newP); 				
} else 					
((PositionList<Position<E>>) children(v)).addLast(newP); 				
return newP; 	
	        }  			

protected TreePosition<E> examCreateNode(E element, TreePosition<E> parent,
PositionList<<Position<E>> children) { 				
return new TreeNode<E>(element, parent, children); 			
}  		
}