Sunteți pe pagina 1din 2

LISTE LINIARE SIMPLU ÎNLĂNȚUITE ALOCATE DINAMIC

Definiție

O listă liniară simplu înlănțuită reprezintă o colecție de noduri aflate într-o relație de ordine.

O componenta a unei liste simplu înlănțuite numită nod al listei sau element al listei se
declară ca o dată structurată de tip înregistrare, formată din două câmpuri: informația propriu-zisă
(care poate fi de orice tip: numeric, caracter, pointer, tablou, înregistrare) și informația de legătură
(adresa la care e memorată următoarea componentă).
Ultima componenta va avea informația de legătură NULL, cu semnificația că după ea nu
mai urmează nimic (reține adresa „nici o adresa” a următoarei componente).
Aceasta organizare permite numai acces secvențial la elementele listei. Pentru accesarea listei
trebuie cunoscută adresa primului element (numita capul/vârful listei); elementele următoare sunt
accesate parcurgând lista.
O listă simplu înlănțuită este o structură care poate fi reprezentată grafic astfel:

Se poate defini un tip de date structurat numit nod, ale carui campuri le numim info si urm.
De exemplu, pentru o lista de numere reale, putem defini:
struct nod
{float info;
nod *urm;};
Concluzie:
Fiecare nod al listei conţine două informaţii:
- info reprezintă informația propriu-zisă (cheia nodului);
- urm reprezintă informația de legătură (va memora adresa nodului următor din listă -
pointer).
Declarare variabile utile:
nod *prim, *ultim; // sau nod* prim = NULL; //Declararea listei vida
float x;
unde:
prim - adresa primului element al listei;
ultim - adresa ultimului element al listei;
x - informația care va fi memorată în nod.
Pentru a parcurge nodurile listei trebuie cunoscută adresa primului element al listei (prim) şi adresa
ultimului element din listă (ultim).
prim=new nod; // se alocă spațiu de memorie necesar pentru primul nod al listei

ultim=new nod; // se alocă spațiu de memorie necesar pentru ultimul nod al listei

Referirea la informatia primului nod al listei se va face astfel:


prim->info
Referirea la adresa la care e memorat al doilea nod al listei se va face astfel:
prim->urm
Referirea la informatia celui de-al nod al listei se va face astfel:
prim->urm->info
Exemplu:
nod* p, * q; // se declară două noduri ale unei Liste liniare simplu înlănțuită
int x, y;
p=new nod;
q=new nod;
cin>>p->x; //se citește informația utilă a nodului p
cin>>q->y;
p->urm=q; // p memorează adresa nodului q - s-a realizat legătură între cele două
noduri
q->urm=NULL; //q este ultimul nod al listei

Operațiile care se pot face utilizând liste simplu înlănțuite sunt:


- crearea listei
- adăugarea unui element ( se realizează întotdeauna la sfârșitul listei)
- inserarea unui element - in interiorul listei:
• după un nod de informație cunoscută
• înaintea nodului de informație cunoscută
- ștergerea unui element din listă
- afișarea elementelor/nodurilor listei

S-ar putea să vă placă și