Ok quindi come faccio a modificare h?
codice:
public int contaOccorrenze(E e)
{
return contaOccorrenze(e,root);
}
public int contaOccorrenze(E e, Position<E> v)
{
int h = 0;
if(v.element() == e)
{
h = h + 1;
}
for(Position<E> w : v.element())
{
return contaOccorrenze(e,w);
}
return h;
}
Può andare?
Edit: No, mi torna 0 pure così u.u
Facendo così mi conta bene solo se il nodo che gli passo è foglia, altrimenti torna 0... sto per spaccare il pc, odio la ricorsione!
codice:
public int contaOccorrenze(E elem)
{
return contaOccorrenzeRic(elem, root,0);
}
private int contaOccorrenzeRic(E elem, Position<E> r, int h)
{
for(Position<E> w : r.getChildren())
{
if(w.element() == elem)
{
h = 1 + contaOccorrenzeRic(elem,w,h);
}
h = contaOccorrenzeRic(elem,w,h);
}
return h;
}