scusa shodan ma mi ero dimenticato di questo post , adesso le classi non riesco a postartele perchè sono al lavoro, ma devo generare un grafo di nodi CNodeImporter(classe di un composite) da una gerarchia di istanze di classi IskProvider(una classe composite anch' essa).
Mi sono trovato molto in difficoltà su questo punto:
1)non riesco a capire come fare il debug dell' algoritmo che fa l'attraversamento delle istanze IskProvider(che chiaramente possono avere uno o piu figli IskProvider sempre di tipo IskProvider o non hanno nessun figlio )
io ho strutturato in questo modo a memoria:
ma sono ancora lontano dalla soluzione.codice:void Traverse(CNodeimporter ParentNode, IskProvider) { //con figli for(IskProvider prov in Iskprovider.children)//pseudo code { CNodeImporter ChildNode = new CNodeImporter(prov)//carica alcune caratteristiche da //prov ParentNode.insert(ChildNode); parentNode = ChildNode; Traverse(parentNode,prov);// } if(IskProvider!= NULL && IskProvider.children.Lenght == 0)//l'istanza IskProvider non ha figli { CNodeImporter ChildNode = new CNodeImporter(prov)//carica caratteristiche ParentNode.insert(ChildNode); parentNode = ChildNode; } } }
soprattutto non capisco come debuggare il tutto, e come le variabili di una chiamata cambino , penso , dico penso che tutte le variabili di una chiamata vengano "salvate" nello stack , ma come ritornano (automaticamente) e in che ordine?
è soprattutto l'ordine che non riesco a capire , come si srotola il tutto quando ho finito le chiamate ricorsive?
scusa l'ignoranza ma è una delle prime volte che affronto l'argomento e vorrei capire.
grazie.
ciao

Rispondi quotando