|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2006
Messaggi: 1568
|
[Java] Cercare e Restituire un Nodo di un Albero
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: Codice:
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
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! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Il problema non si pone: devi semplicemente ritornare null quando app == null.
Infatti, hai fatto (correttamente) il controllo che app sia diverso da null prima di fare il tuo "dirty job" Quando fai le due findNode() ricorsive, dovrai infine riportare solo quella diversa da null (se ne esiste una, altrimenti ritorni null). Se entrambe sono diverse da null (i.e. lo stesso valore in nodi diversi) puoi decidere quale dei due ritornare, anche se ho visto che questo caso non ti interessa. In sostanza: non ti serve nessuna statica. Una semplice variabile locale temporanea e' sufficiente
__________________
In God we trust; all others bring data |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:25.



















