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