Newsgroup: it.comp.lang.visual-basic
Titolo: Ricorsione e TreeView

Salve raga!!!!!!
E caz collaborate!!!!!!!!
Allora, devo trasporre un albero binario su un treeview.
E' il primo passo di un processo molto + lungo, quindi per
favore datemi una mano.
Ecco i nomi delle proprietą della classe "Albero binario":
Caption
Description
Key
LeftNode
RightNode
Queste sono le rilevanti.
Ora io devo fare un'accidente di proc che mi trasferisce questa
struttura in un treeview, ma farla ricorsiva sembra un incubo.
Qualcuno ha gią fatto una roba simile, o sa come fare senza 
ricorsione?
Grazie
Andrea
-------------------------------
Message Posted by  <dedGateway>
http://www.dedonline.com/forump

 E caz collaborate!!!!!!!!
Prima di collaborare dovrei riuscire a capire qualcosa, ma dal combinato
disposto dei due post, quello che ottengo è solo un grande mal di testa.
Salutoni
Sergio

Sergio
Ciao


 Come accidenti faccio?
Beh, la motosega ha una cordicella, la tiri e .....
Scusa se faccio lo spiritoso :-)
E' che ho l'impressione che tu dia per scontate alcune conoscenze "teoriche",
che forse non sono proprio patrimonio comune. Sicuramente non mie, comunque.
Piccola nota a margine, sulle proprietà del nodo, che hai indicato essere:
Caption
Description
Key
LeftNode
RightNode
non ce n'è nessuna che punta al nodo "mamma"?
Salutoni
Sergio


dipende, potresti fornire maggiori informazioni,
tipo dove č memorizzato questo albero? (ram, db, file ecc...)
in linea di massima, parti dalla radice e ti scorri in maniera ricorsiva
(sai come si fa una funzione ricorsiva vero? non importa conoscere VB,
si fanno nelleo stesso modo in tutti i linguaggi)
il tuo albero, magari prima a destra e poi a sinistra o viceversa e aggiungi
nodi al trevieew tenendo come riferimento il nodo padre di quello che
vuoi aggiungere
p.s. in futuro poni le domande in maniera piů consona alla
netiquette, questo č un NG non un help desk, nessuno ti deve niente
--
bye BlackMagic
ICQ# 85485468

 Come accidenti faccio?
CUT
All'agraria del tuo paese che hanno detto???
--
%%============================%%
Il Wodkino Nazionale è raggiungibile anche a :
www.martek.it
Forum: 
http://www.martek.it/go.asp?PortamiA=1
Bestiario: 
http://www.martek.it/go.asp?PortamiA=2
 (link bestiario del
ng)

 [...] ma farla ricorsiva sembra un incubo.
E perchè? La ricorsione è la morte sua. Vai con lo pseudocodice:
Sub RiempiTreeViewDaAlberoBinario(Albero as alberoBinario, Tree as Treeview,
Optional NodoDiPartenza as Long = 0)
   Dim Fratello as Albero.Nodo
   For Each Fratello in Albero.Nodo(NodoDiPartenza)
       Tree.AggiungiNodoFiglio
Tree.ContenutoNodo(Treee.NodoCorrente)=Albero.ContenutoNodo(NodoDiPartenza)
       Se EsisteFiglio(Albero.Nodo(NodoDiPartenza))
           RiempiTreeViewDaAlberoBinario Albero,
Tree,.Figlio(Albero.Nodo(NodoDiPartenza))
       FineSe
   Next
End Sub
Ciao
*Roby*

non ce n'è nessuna che punta al nodo "mamma"?
Innanzitutto si chiama nodo padre :)
In ogni caso la teoria sugli alberi funziona così:
Io alloco il nodo padre.
Che ha le proprietà left e right.
Quando devo aggiungere un nodo, lo creo e lo referenzio
alla parte left o alla parte right, a seconda di quello che
devo fare.
Quindi adesso ho un'altra uscita a 2 puntatori, che posso usare.
Così alla fine si forma una struttura che può diventare molto
complessa.
In genere gli alberi binari vengono utilizzati per realizzare indici
di database, anche se nel caso specifico mi serve per un'altra cosa.


bye BlackMagic


*Roby*
Ciao



questo credo che dipenda dalle domande che vengono
posto, e dai subject, spesso succede che una domanda interessante,
con un subject sbagliato non venga letta.


Andrea Raimondi wrote:
CUT
PER ANDREA:
premi f1 e cerca proprietà KEY
oppure Oggetto Node
oppure insieme Nodes
PER ROBERTO e gli altri:
ve ne rendete conto che ha lavorato di psicologia ed una cosa che faceva
fatica a fare (più per svogliatezza che per mancanza di capacità) ve l'ha
fatta fare a voi?
Si meritava una risposta ironica o al limite un plonk!
sempre IMHO eh!
:-)
--
%%============================%%
Il Wodkino Nazionale è a : 
www.martek.it


 ve ne rendete conto che ha lavorato di psicologia
Leggo a campione un messaggio ogni tanto. Non mi rendo conto quasi mai di
niente. :-)
Ciao
*Roby*

Il Wodkino Nazionale è a : 
www.martek.it
Andrea


 
http://www.dedonline.com/forump
--
%%============================%%
Il Wodkino Nazionale è a : 
www.martek.it


 E' solo difficoltà ad "immergersi" nel modo di pensare VB.
Vorrei "spezzare un'arancia" ;-) a favore di Andrea Raimondi:
la prima volta che ho provato a lavorare con il TreeView, ho
incontrato grosse difficoltà a capire come cavolo funzionasse,
nonostante avessi già una certa esperienza in VB... usa, bisogna
ammetterlo, una logica contorta, o perlomeno diversa dalla mia.
Non che la /mia/ logica faccia testo, eh. Però è quella che mi ritrovo :-)
Mi vergogno un po' ad ammetterlo, ma alla fine ho tirato giù un
paio di routine da PSC e dall'MSDN o qualche altro sito e le ho
smanettate finché non hanno fatto quello che mi serviva, ma
non sono ancora sicuro di aver capito bene come funziona...
Bye, G.

 Bye, G.
Ciao
Andrea