Sunteți pe pagina 1din 3

Liste

Lista este o structură dinamică de date care conține elemente de același tip aflate într-o relație de ordine
prin memorarea la element a unei informații de legătură cu elementele vecine. Accesul la un element
(nod) se face secvențial prin parcurgerea listei până la acel element.

Tipuri de liste
Lista Liniară Simplu Înlănțuită (LLSI)
LLSI este o structură dinamică de date în care accesul la elementele listei se face pe baza faptului că la
nivelul unui element este memorată adresa elementului următor.
informație_element adresa_element_următor

adr_1 inf_1 adr_2 inf_2 adr_3 inf_n NULL


prim adr_1 adr_2 adr_n
Lista Liniară Dublu Înlănțuită (LLDI)
LLDI este o structură dinamică de date în care accesul la elementele listei se face pe baza faptului că la
nivelul unui element este memorată adresa elementului anterior și adresa elementului următor. LLDI are
avantajul că poate fi accesată din oricare capăt și parcursă în ambele sensuri.
adresa_element_anterior informație_element adresa_element_următor

NULL inf_1 adr_2 adr_1 inf_2 adr_3 adr_n-1 inf_n NULL


adr_1 adr_2 adr_n
prim adr_1 adr_n ultim

Lista Circulară Simplu Înlănțuită (LCSI)


LCSI este o structură dinamică de date în care accesul la elementele listei se face începând cu orice element
pe baza faptului că la ultimului element este memorată adresa primului element.

inf_1 adr_2 inf_2 adr_3 inf_n adr_1


adr_1 adr_2 adr_n

Lista Circulară Dublu Înlănțuită (LCDI)


LCDI este o structură dinamică de date în care accesul la elementele listei se face începând cu orice element
și poate fi parcursă în ambele sensuri.

adr_n inf_1 adr_2 adr_1 inf_2 adr_3 adr_n-1 inf_n adr_1


adr_1 adr_2 adr_n

1
Operații:
Creare listă
Se face prin inserarea (adăugarea) cel puțin a unui element.

Inserare element
 la început, la primul element
 la sfârșit, la ultimul element
 în fața unui element dat
 în spatele unui element dat

Ștergere element
 primul
 ultimul
 înaintea unui element dat
 după un element dat
 un element dat

Parcurgere
Constă în trecerea de la un element la altul și efectuarea unei operații la nivelul elementului (afișare,
modificare).

Căutarea unui element în listă

Sortarea (ordonarea) listei

Stiva
Stiva este o listă liniară de un tip special, în care adăugarea., extragerea unui vârf e_n a_n-1
element, sau orice alt acces se face la un singur capăt, numit vârful stivei.
e_n-1 a_n-2
Stiva funcționează pe principiul LIFO (last in first out), ultimul intrat primul ieșit.
Operații:
 adăugarea unui element în vârf. e_2 a_1
 extragerea (ștergerea) elementului din vârf
Stiva poate fi memorată și static cu ajutorul unui tablou unidimensional. e_1 NULL

Deoarece toate operațiile se efectuează doar la vârful stivei este suficient să păstrăm într-o variabilă
indicele ultimului element (vf). Considerăm inițial vf=-1 (stivă vidă), pentru a introduce primul element pe
poziția 0. M este dimensiunea maximă a tabloului. M=5
e1 e2 e3
Vf=-1 0 1 Vf=2 3 4 (M-1)

2
Adăugarea unui element în stivă
void adauga(int e, int &vf)
{
if(vf<M-1)
st[++vf]=e;
else
cout<<"stiva plina"<<endl;
}

Extragerea (ștergerea) unui element


void sterg(int &vf)
{
if (vf>=0)
vf--;
else
cout<<"stiva vida"<<endl;
}

Parcurgerea (afișarea) stivei


void parcurgere(int vf)
{
if (vf>=0)
{
cout<<endl<<"stiva:"<<endl;
for (int i=0;i<=vf;i++)
cout <<st[i]<<" ,";
cout<<endl;
}
else
cout<<"stiva vida"<<endl;
}
Aplicație: să se scrie un program care memorează o stivă utilizând un vector și realizează următoarele
operații: adăugare, ștergere, parcurgere, la alegerea utilizatorului utilizând un meniu.

Coada
Coada este o listă liniară simplu înlănțuită de tip special, pentru care toate inserările sunt făcute la unul din
capete, iar toate ștergerile (modificările) la celălalt capăt. Coada funcționează pe principiul FIFO (first in first
out), primul intrat primul ieșit.

adr_1 e_1 NULL e_2 adr_1 e_n adr_n-1 adr_n


prim adr_1 adr_2 adr_n ultim
Operații:

 adăugarea unui element la sfărșit.


 extragerea (ștergerea) primului element din coadă

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