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 :
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
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.
Ora, il mio consiglio, e' che inizi a dare un occhio a questa tipologia di "algoritmi e strutture dati" altrimenti nn ne vieni fuori.