Schema unei liste recursive realizata ca structura inlantuita este reprezentata in figura 8. Lista contine doua referinte: una catre capul listei care este un obiect, iar alta catre coada listei, care este tot o lista. Recursivitatea structurala consta tocmai in faptul ca in lista se face referinta la o alta lista.
- Figura 8 -
Admitand ca RLista este o clasa de liste recursive, singurele ei campuri
sunt:
private Object cap;
private RLista coada;
O astfel de structura permite folosirea cu precadere a metodelor recursive.
Exemplu
In fisierul RLista.java este dat un exemplu de clasa de lista recursiva. In acelasi fisier exista si aplicatia TestRLista, in care se testeaza metodele clasei RLista. Se poate remarca faptul ca in unele din metodele clasei RLista s-a utilizat recursivitatea. Astfel sunt metodele recursive contine, concat si clone. Metodele puneCap, eliminaCap si toString(), desi nu sunt recursive, folosesc totusi in algoritmii lor proprietatea de recursivitate structurala a listei, conform careia coada listei este tot o lista. |