Pages: [1]   Go Down
Print
Author Topic: verificare esistenza del nodo in un albero binario  (Read 889 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
rox
Forumista
***
Offline Offline

Posts: 633


« on: 29-04-2009, 09:35:39 »

ho provato a verificare se esiste un nodo in un albero binario,ma mi restituisce sempre true.in particolare non ho capito come fare il metodo esiste (quello che restituisce un boolean).
Code:
public NodoAlberoInt  esiste(NodoAlberoInt t,int i)throws Exception
{
if (isEmpty())
throw new Exception("l'albero è vuoto!!");
if(t.getEtichetta()!=i)
{
esiste(t.getLeft(),i);
esiste(t.getRight(),i);
return (t);
}
if(t==null)
throw new Exception("il nodo cercato non esiste!");
else return t;


}
public boolean esiste(int i)throws Exception
{
NodoAlberoInt t=new NodoAlberoInt(i);
return i==esiste(t,i).getEtichetta();
}
grazie in anticipo per le eventuali risposte.
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
poty
Matricola
*
Offline Offline

Posts: 95


« Reply #1 on: 30-04-2009, 14:31:16 »

ci ho combattuto pure io...ma per quello ricorsivo...quello iterativo mi funge...quale ti interessava?
Logged
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #2 on: 30-04-2009, 22:04:20 »

mi serviva quello ricorsivo...cmq postami quello iterativo ,vediamo se riesco a fare  quello ricorsivo sulla base di quello iterativo
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
Alex_47
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 409


The spiral's King


« Reply #3 on: 01-05-2009, 11:17:01 »

Ecco la mia soluzione al vostro problema^^

Code:
public boolean Esiste(int val) throws ObjectNotFoundException
{
Nodo p = root;
return RicorEsiste(p,val);
}


public boolean RicorEsiste(Nodo p,int val) throws ObjectNotFoundException
{
if(p != null)
{
if(val == p.key)
{
return true;
}
else if(val < p.key)
{
return RicorEsiste(p.left,val);
}
else
{
return RicorEsiste(p.right,val);
}
}
return false;

}
Logged
Pages: [1]   Go Up
Print
Jump to: