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; } }

Rispondi quotando