Originariamente inviato da lollythefighter
Ciao, innanzitutto grazie per la risposta, non ho ben capito che cosa intendi per "ricorsione"![]()
Allora..... secondo me anche tu hai maolta cunfusione riguardo l'argomento su cui ti stai per cimentare.
Capisco la tua necessità di arrivare ad 1 soluzione. Ma ci sono dei limiti di fondo che non ti consentono di arrivarci.
Per ricorsione ... non si intende nulla, si richiede o si propone l'utilizzo di tale tecnica per sviluppare un codice in grado di analizzare un struttura dati di tipo alberale di cui ingori la struttura.
Quando si studiano le strutture dati di tipo "albero" (generico,binario,bilanciato,rosso-nero, etc) si studiano di pari passo soluzioni "ricorsive", ossia funzioni o metodi che "richiamano se' stessi" .
Questa particolare tecnica ti consente di scrivere codice che analizzi tali strutture dati, senza dover impazzire a scrivere procedure iterative folli. UNitamente al fatto che alcune strutture non sono analizzabili se non ricorsivamente.
ad sempio scansionare un b-tree (albero binario)
esempio di codice ricorsivo :
Questo ti fa capire come e' una pèrocedura ricorsiva ossia una procedura che richima se'ì stessa per analizzare una struttura dati di tipo "albero binario" in questo caso. CI sono un sacco di procedura di questa tipologia per analizzare strutture dati simili in base alle propietà intrinseche della tipologia di struttura in analisi.codice:begin scan( byref nodo ) destra <- "" sinistra <- "" scansione <- "" if node is empty or null // CASO BASE then ritorna "" else // fasi di controllo // Ricorsione sul sottoramo destro destra <- scan(nodo.rightChild) // ricorsione sul sottoramo sinistro sinistra <- scan( nodo.leftChild ) // Creazione e concatenamento dalloutput scansione <- "Nodo "+(nodo.value)+" s:"+sinistra+" | d:"+destra endif ritorna scansion end
Ora, il mio consiglio, e' che inizi a dare un occhio a questa tipologia di "algoritmi e strutture dati" altrimenti nn ne vieni fuori.

Rispondi quotando