Cuprins:
Definiție - Ce înseamnă Stack?
Un stivă este o structură conceptuală constând dintr-un set de elemente omogene și se bazează pe principiul last in first out (LIFO). Este un tip de date abstracte frecvent utilizat, cu două operațiuni majore, și anume push și pop. Push and pop sunt realizate pe elementul de sus, care este elementul cel mai recent adăugat la stivă. Operația de împingere adaugă un element în stivă în timp ce operația pop elimină un element din poziția superioară. Conceptul de stivă este utilizat în programarea și organizarea memoriei în calculatoare.
Techopedia explică Stack
O stivă reprezintă o secvență de obiecte sau elemente într-un format liniar de structură de date. Stiva este formată dintr-un fund delimitat și toate operațiunile sunt efectuate pe poziția superioară. Ori de câte ori un element este adăugat la stivă prin operația de împingere, valoarea superioară este incrementată cu unul și atunci când un element este eliminat din stivă, valoarea superioară este decrementată cu unul. Un pointer la poziția superioară a stivei este, de asemenea, cunoscut sub numele de indicatorul stivă.
O stivă poate avea o dimensiune fixă sau poate avea o implementare dinamică acolo unde dimensiunea este permisă. În cazul stivelor de capacitate delimitate, încercarea de a adăuga un element într-o stivă deja plină determină o excepție de revărsare a stivei. În mod similar, o condiție în care o operație pop încearcă să elimine un element dintr-o stivă deja goală este cunoscută sub denumirea de „underflow”.
O stivă este considerată a fi o structură de date restrânsă, deoarece este permis un număr limitat de operațiuni. Pe lângă operațiile push și pop, anumite implementări pot permite operațiuni avansate, cum ar fi:
- Peek - Vizualizați elementul cel mai de sus din stivă.
- Duplicate - Copiați valoarea elementului de top într-o variabilă și împingeți-o înapoi în stivă.
- Swap - Schimbă cele două elemente de top din stivă.
- Rotire - mutați elementele de top din stivă, după cum este specificat de un număr sau treceți în mod rotativ.
Implementările software ale conceptului de stivă se realizează folosind tablouri și liste legate unde poziția de sus este urmărită utilizând o variabilă sau respectiv indicatorul antet. Multe limbaje de programare oferă funcții integrate pentru a sprijini implementarea stivei.
Stivele hardware sunt implementate în scopul alocării și accesului memoriei folosind o origine și o dimensiune fixă. Registrele de stivă sunt utilizate pentru a stoca valoarea indicelui stivei.