Salve, io devo fare un esercizio sugli alberi:"Scrivere la funzione public static <E>boolean isContained(Tree<E> T, E x)
che restituisce true se e solo se x contenuto in qualche nodo dell�albero."
Premetto che io e la ricorsione siamo 2 cose distinte e separate, non riesco a capire una cosa. Quando il programma va a effettuare la ricorsione, restituisce tanti false e un true quando trova l'elemento. Come posso fare in modo che il programma restituisca true? Grazie a tutti!
codice:
public static <E> boolean isContained(Tree<E> t, E x) {
if(t.isEmpty()){
throw new EmptyTreeException("L'albero è vuoto.");
}
return find(t,t.root(),x);
}
public static <E> boolean find(Tree<E> t, Position<E> p, E x) {
System.out.println(p.element());
if(p.element().equals(x)) {
return true;
} else {
if(!p.element().equals(x) && t.isInternal(p)) {
for(Position<E> i: t.children(p)) {
find(t,i,x);
}
}
return false;
}
}