PDA

View Full Version : [ANY] Funzione ricorsiva la cui iterazione è definibile a compile time.


Markycap
23-01-2012, 22:07
Servirebbe praticamente sapere, anche in uno pseudocodice qualunque, qual'è l'idea di fondo che porta a scrivere una funzione ricorsiva che termina però ad un dato evento GESTIBILE a compile-time. Sono a corto di idee...

gugoXX
24-01-2012, 00:23
Ad esempio?
Non so, uno dei criteri interni alla funzione potrebbe fare uso di una costante, definita e cambiabile appunto a compile time?

Markycap
24-01-2012, 02:20
Per esempio, dopo 10 volte che ha richiamato se stessa, ritorna, e tutto ciò lo "leggi" tra le righe del codice... E' un esercizio, ma non vorrei che nasconda scheletri nell'armadio... com'è la tua idea di costante? potrebbe essere una chiave...

gugoXX
24-01-2012, 09:08
Per esempio, dopo 10 volte che ha richiamato se stessa, ritorna, e tutto ciò lo "leggi" tra le righe del codice... E' un esercizio, ma non vorrei che nasconda scheletri nell'armadio... com'è la tua idea di costante? potrebbe essere una chiave...

Boh, potrebbe essere cosi'?


const int NumRec = 10;

int SumTreeNotTooDeep(Node head)
{
return SumTreeNotTooDeep(head, 0);
}

int SumTreeNotTooDeep(Node node, int level)
{
if (level>=NumRec)
return 0;

int ret=0;

Node left = node.Left;
if (left !=null)
ret = SumTreeNotTooDeep(left, level+1);

Node right = node.Right;
if (right != null)
ret += SumTreeNotTooDeep(right , level+1);

return ret;
}