nico88desmo
25-11-2008, 19:17
Un saluto a tutti!
Come da titolo, avrei il seguente problema: restituire il nodo di un Albero una volta trovata l'informazione (suppongo che l'albero non contenga informazioni duplicate).
La mia idea era di scorrere tutto l'albero seguendo una inorder-visit, e una volta trovata l'informazione, restituisco l'intero nodo;
il problema è la realizzazzione; pongo subito il codice da me scritto:
private BTPosition<E> findNode (E v, BTPosition<E> app) {
if (app!=null) {
if (app.element().equals(v))
return app;
appNode = findNode(v, app.getLeft());
appNode = findNode(v, app.getRight());
}
return appNode;
} // end findNode
il metodo funzionerebbe così, soltanto che non vorrei utilizzare la variabile appNode (variabile d'appoggio definita all'interno della classe), anche perchè nel caso provassi a cercare un elemento che non è presente nell'albero, la variabile appNode punterebbe ancora alla ricerca precedente;
La soluzione che avevo in mente consisteva nel dichiarare static la variabile all'interno del metodo, però il compilatore non me lo lascia fare;
Qualcuno mi potrebbe dare qualche dritta su come fare?
Grazie!
Come da titolo, avrei il seguente problema: restituire il nodo di un Albero una volta trovata l'informazione (suppongo che l'albero non contenga informazioni duplicate).
La mia idea era di scorrere tutto l'albero seguendo una inorder-visit, e una volta trovata l'informazione, restituisco l'intero nodo;
il problema è la realizzazzione; pongo subito il codice da me scritto:
private BTPosition<E> findNode (E v, BTPosition<E> app) {
if (app!=null) {
if (app.element().equals(v))
return app;
appNode = findNode(v, app.getLeft());
appNode = findNode(v, app.getRight());
}
return appNode;
} // end findNode
il metodo funzionerebbe così, soltanto che non vorrei utilizzare la variabile appNode (variabile d'appoggio definita all'interno della classe), anche perchè nel caso provassi a cercare un elemento che non è presente nell'albero, la variabile appNode punterebbe ancora alla ricerca precedente;
La soluzione che avevo in mente consisteva nel dichiarare static la variabile all'interno del metodo, però il compilatore non me lo lascia fare;
Qualcuno mi potrebbe dare qualche dritta su come fare?
Grazie!