Ciao.
Di seguito posto il codice che ho scritto per verificare in maniera ricorsiva se e solo se , tutti gli elementi presenti in un albero binario a , sono presenti anche in un albero binario b.
Correggetemi se sbaglio.

Interfaccia:

codice:
public interface AlberoBinario{

   public AlberoBinario destro(); //restituisce il sottoalbero destro dell'albero corrente
   public AlberoBinario snistro(); //restituisce il sottoalbero sinistro dell'albero corrente
   public in val(); //restituisce il valore memorizzato nella radice dell'albero
Metodo per la verifica:

codice:
public static boolean verifica(AlberoBinario a, AlberoBinario b){

   if(a==null) return true;
    if(presente(b,a.val()){
     boolean b = verifica(a.destro());
      if(b) return verifica(a.sinistro());
    }
    return false;
}

boolean presente(AlberoBinario a , int v){
  if(a==null) return false;
  if(a.val() != v){
    boolean b = presente(a.destro(), v);
     if(b) return presente(a.sinistro(),v);
  }
  return false;
}