Lista recursiva

Listele studiate in sectiunile anterioare au fost concepute ca structuri iterative, ca toate structurile care implementeaza, direct sau indirect, interfata java.util.Collection. Vom arata acum ca lista inlantuita poate fi conceputa si ca structura recursiva.

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.



© Copyright 2001 - Severin BUMBARU, Universitatea "Dunarea de Jos" din Galati