
Originariamente inviata da
andbin
E' sbagliato. Innanzitutto in verifica fai la ricorsione passando 1 solo argomento. Poi in presente se a.val() È uguale a v, tu restituisci false. Che non è giusto. Stesso discorso poi già fatto del OR "logico" che si può usare.
Non ho analizzato in dettaglio, comunque.
Ah scusa...mi è sfuggito un parametro...
Riscrivo :
codice:
public static boolean verifica(AlberoBinario a, AlberoBinario b){
if(a==null) return true;
if(presente(b, a.val()){
verifica(a.destro(), b) || verifica(a.sinistro(), b) ;
}
return false;
}
boolean presente(AlberoBinario a, int v){
if(a==null) return false;
if(a.val() != v){
presente(a.destro(),v) || presente(a.sinistro(), v);
}
return true;
}