|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jun 2008
Messaggi: 159
|
[JAVA] Ricerca tra i nodi di un albero binario
Premetto che non posso utilizzare Java Collection o altri framework
Questa è la classe che definisce il nodo Codice PHP:
Questo è il codice della creazione di una lista di nodi dell'albero Codice PHP:
In particolare, il metodo "cerca" riceve in ingresso il riferimento alla radice dell'albero e una stringa x. Qualora il campo info di un nodo dell'albero abbia valore uguale a quello della stringa x, il metodo restituisce il riferimento a tale nodo, altrimenti esso restituisce null (per semplicità tutti i nodi dell'albero abbiano valori di versi del campo info). Ho iniziato a scrivere il metodo "cerca", ma non riesco a capire come renderlo ricorsivo per tutti i nodi Codice PHP:
|
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Feb 2002
Città: Trento
Messaggi: 962
|
Nel secondo "else", puoi ispezionare sia il ramo sinistro, che quello destro, semplicemente invocando di nuovo la funzione su "r.sin" e "r.des". Poi ritorni null se entrambi i risultati sono null, altrimenti ritorna quello che non è null.
__________________
"Et Eärallo Endorenna utúlien. Sinome maruvan ar Hildinyar tenn' Ambar-metta!" -- Aragorn Elessar, Heir of Isildur Mixmar -- OpenSuSE 11.1 on AMD 64 3000+ on DFI LanParty nF4-D | GeForce 6600 GT + Thermaltake Schooner on Samsung 710N Storage -- ( 2 x Hitachi Deskstar 80 Gb + 1 x Hitachi 250 Gb ) = 1 RAID 5 + 1 Storage space LaCie Ethernet Disk Mini 250 Gb | HP - DV2150 EL MILAN CLAN |
![]() |
![]() |
![]() |
#3 | |
Member
Iscritto dal: Jun 2008
Messaggi: 159
|
Quote:
Potresti scrivermi concretamente il pezzo di codice? |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Procedi in questo modo
1) se il nodo parametro == null ritorni null 2) chiave == stringa ritorni il nodo parametro 3) se la chiamata ricorsiva al nodo sinistro ha come risultato != null ritorni il risultato 4) se la chiamata ricorsiva precedente ha avuto risultato null effettui la chiamata ricorsiva al nodo destro. Se la chiamata ha come risultato un valore != null ritorni il risultato altrimenti ritorni null Dove nodo parametro è nella tua funzione postata prima NodoBin r |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:15.