So che probabilmente già il titolo farà fuggire molte persone ma spero che qualche buon'anima venga ad aiutarmi xD

Allora premetto che queste sono cose che provengono dritte dritte dall'università.

Ho dovuto implementare una classe per un Albero generico, con vari metodi di supporto. Ho dei problemi con alcuni metodi RICORSIVI per il calcolo di proprietà dell'albero in questione.

Intanto, un metodo richiesto è: Dato un nodo, calcolarne la profondità.
La segnatura del metodo data è: public int depth()

Ora il problema qual'è.. la mia classe albero fa uso dei tipi generici.

public class MyTree<E> implements Tree<E>...
{
private Position<E> root;

ecc..

Ora, dal main, dove creo l'albero,chiamato t ad esempio, come faccio a chiamare il metodo depth(nodo creato nel main)? Mi da problemi.

Nel main ho:

Tree<Integer> t = new MyTree<Integer>();
Position<Integer> nodo1 = new MyNodo(100);
Position... ecc..

Non posso passare argomenti a depth, quindi come diamine faccio a calcolare la profondità di uno specifico nodo?

Ammesso che potessi passargli argomenti, se gli passo una Position<Integer> nodo, mi da errore perché nella classe albero giustamente uso il tipo generico E..

Se può servire, il codice che calcola la profondità di un nodo è questo:

codice:
public int depth(Position<E> v)
{
	if(isRoot(v))
	{
		return 0;
	}
	else return 1 + depth(v.getParent());
}
Grazie.

Ps: Ho problemi poi con la realizzazione di veri e propri metodi ricorsivi, ma li vediamo dopo, meglio una cosa alla volta^^'