Sunteți pe pagina 1din 11

Programarea

calculatorului
Stucturi dinamice
de date. Stiva
Stiva este un tip particular de listă
simplu înlănţuită în care adăugarea
sau excluderea unui element se face
la un singur capăt al listei, numit
vârf .
Elementul introdus primul în
stivă, poartă numele de bază a stivei
Exemple
Din
 punct de vedere fizic, cel
mai intuitiv mod de a înţelege stiva
îl reprezintă o stivă de farfurii.
Accesul se face doar la elementul
(farfuria) din vârf. Dacă se doreşte
accesul la oricare alt element trebuie
extrase din stivă elementele din vârf
până la cel solicitat.
Observaţii:
singurul element din stivă, la care avem

acces direct, este cel de la vârful stivei;


trebuie cunoscut în permanenţă vârful

stivei (pointerul Prim);


stiva este utilizată atunci când
programul trebuie să amâne execuţia unor
operaţii, pentru a le executa ulterior, în
ordinea inversă apariţiei lor;
stiva funcţionează după principiul:

Ultimul sosit este primul servit. LIFO -


Last In First Out
Operaţiile ce le suportă stiva
În
 imaginea următoare sunt prezentate operaţiile cu stiva din perspectiva unui model fizic (un
resort cu monede). Ordinea operaţiilor este de la stânga la dreapta.
În faza iniţială stiva fiind vidă resortul este relaxat (necomprimat).

Prima depunere în stivă este cea a monedei de etichetă 1995.


Urmează alte trei depuneri: întâi moneda etichetată 1982, apoi cea 1998 şi ultima 1996.

 Imaginea din dreapta reprezintă configuraţia stivei după extragerea monedei din vârful stivei

(a monedei etichetate 1996).


Noul vârf al stivei are eticheta 1998.

 După cum ştim, stiva suportă două operaţii:
inserarea unui nod la începutul listei şi ştergerea
primului nod din listă.
 În varianta de implementare dinamică, crearea unei

stive cu informaţii ( n –numere întregi) citite de la


tastatură se realizează astfel:
Coada
Coada reprezintă o altă categorie specială de listă simplu înlănţuită, în care
elementele se adaugă la un capăt (sfârşit) şi se suprimă la celălalt capăt (început).
Despre primul element pus în coadă se spune că este capul cozii, despre ultimul că
este sfârşitul cozii.
Coada – este o structura de date liniara ce lucreaza
cu o colectie de date avand doua operatii principale:
push(int numar) – adauga un numar in coada pop() –
sterge ultimul element din lista.
Modul in care aceasta prelucreaza elementele i-a
dat denumirea de FIFO ( First In First Out = primul
venit-primul servit)
Exemple
Modelul intuitiv al acestei structuri
este coada care se formează la un
magazin: lumea se aranjează la sfârşitul
cozii, cei care se găsesc la începutul
cozii sunt serviţi şi părăsesc apoi coadă.

Servirea cererilor dintr-un sistem cu o resursa


disponibila tuturor. De exemplu imprimanta, daca
mai mulți oameni doresc sa printeze ceva,
imprimanta va servi cererile in ordinea in care au
venit.

In call Center-uri. Daca suni la Courier,


ești plasat intr-o coada pana când un operator
poate sa vorbească cu tine.
Observaţii:
 trebuie cunoscut în permanenţă începutul cozii şi sfârşitul cozii (pointerii Prim şi

Ultim);
 capul cozii se modifică de fiecare dată când eliminăm un element din coadă, iar

sfârșitul cozii se modifică de fiecare dată când adăugăm un element în coadă;


 accesul este permis astfel:

◦ un element se poate pune în coadă numai după elementul aflat la sfârșitul cozii şi după această
operație el devine sfârșit al cozii;
◦ se poate scoate din coadă numai elementul aflat în capul cozii şi după această operație în capul
cozii rămâne elementul care a fost pus în coadă după el.
 coada este utilizată atunci când informaţiile trebuie prelucrate exact în ordinea în care
”au sosit”, ele sunt reţinute în coadă până când pot fi prelucrate;
 coada funcţionează după principiul “Primul venit –primul servit”.
Crearea unei cozi în varianta
dinamică
Sfârşit

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