This shows you the differences between two versions of the page.
pp:21:laboratoare:racket:recursivitate [2021/03/08 11:37] mihaela.balint [Recursivitate arborescentă] |
pp:21:laboratoare:racket:recursivitate [2021/03/11 09:45] (current) bot.pp |
||
---|---|---|---|
Line 2: | Line 2: | ||
* Data publicării: 08.03.2021 | * Data publicării: 08.03.2021 | ||
- | * Data ultimei modificări: 08.03.2021 | + | * Data ultimei modificări: 11.03.2021 |
===== Obiective ===== | ===== Obiective ===== | ||
Line 78: | Line 78: | ||
==== Recursivitate arborescentă ==== | ==== Recursivitate arborescentă ==== | ||
- | Recursivitatea arborescentă apare în cazul funcțiilor care conțin, în implementare, un caz (sau mai multe) care lansează cel puțin două apeluri recursive. | + | Recursivitatea arborescentă apare în cazul funcțiilor care conțin, în implementare, cel puțin două apeluri recursive care se execută necondiționat. |
=== Exemplu === | === Exemplu === | ||
Line 92: | Line 92: | ||
{{ 19:laboratoare:racket:fibonacci.png }} | {{ 19:laboratoare:racket:fibonacci.png }} | ||
- | Se poate observa **ineficiența** implementării cu recursivitate arborescentă, atât din punct de vedere **temporal** (datorată **apelurilor duplicate**, precum apelul funcției pentru n = 3), cât și din punct de vedere **spațial** (datorată **stocării de "stack frames"** necesare pentru revenirea din recursivitate). | + | Se poate observa **ineficiența** implementării recursive pe stivă, atât din punct de vedere **temporal** (datorată **apelurilor duplicate**, precum apelul funcției pentru n = 3), cât și din punct de vedere **spațial** (datorată **stocării de "stack frames"** necesare pentru revenirea din recursivitate). |
În cadrul [[#Resurse|exercițiilor rezolvate]] puteți observa mai în detaliu diferențele dintre recursivitatea pe stivă si cea pe coada (inclusiv în contextul funcției //fib//). | În cadrul [[#Resurse|exercițiilor rezolvate]] puteți observa mai în detaliu diferențele dintre recursivitatea pe stivă si cea pe coada (inclusiv în contextul funcției //fib//). |