Pages: [1]   Go Down
Print
Author Topic: Esercizi alberi  (Read 705 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Alex_47
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 409


The spiral's King


« on: 12-05-2009, 20:38:18 »

salve ragazzi!
Avrei un piccolo problema con questo esercizio che conta il numero delle foglie presente nell'albero , il programma compila , ma quando eseguo mi da un errore in "if(n.ISLEAF()) ContaF(n,++m);"

cosa potrebbe essere?
intanto vi posto il mio codice , differente da quello del prof nelle slide

Code:
public static int ContaFoglie(Albero A)
{
if(A.IsEmpty()) return -1;
else
{
return ContaF(A.getRoot());
}


}


public static int ContaF(Nodo n)
{
if(n != null)
{
if(n.ISLEAF()) return 1;
return (ContaF(n.left) + ContaF(n.right));
}
else return 0;

}

edit:ho fatto in fretta e furia questo metodo spero che ora funzioni bene
« Last Edit: 14-05-2009, 14:54:46 by Alex_47 » Logged
thomas89
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 341



« Reply #1 on: 13-05-2009, 13:41:30 »

io ho modificato un pò il tuo codice x l'albero ke già avevo creato io, ma ho lasciato il tuo stesso procedimento.. sicuramente ad occhio si vede l'errore if(n.ISLEAF()) ContaF(n,++m);, xkè appena hai trovato la foglia invochi di nuovo lo stesso metodo cn lo stesso nodo, quindi la volta successiva di darà di nuovo l'incremento di m xkè è sempre una foglia, LA STESSA foglia.. infatti a me va in loop.. cm caso base potresti mettere (pensandoci così su 2 piedi) se il nodo ke stai guardando è una foglia && n!=null;

prova.. provo a modificarlo anke io, vediamo ke ne esce fuori Wink
« Last Edit: 13-05-2009, 13:45:05 by thomas89 » Logged

Solo due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi.
Pages: [1]   Go Up
Print
Jump to: