130 likes | 446 Views
Stiva. Mario Dragos Luigi Noob Adrian. Stiva. Stiva este o structura de date abstracta pentru care atat operatia de inserare a unui element in structura cat si operatia de extragere a unui element se realizeaza la un singur capat , denumit varful stivei .
E N D
Stiva MarioDragos LuigiNoobAdrian
Stiva • Stivaeste o structura de date abstractapentru care atatoperatia de inserare a unui element in structura cat sioperatia de extragere a unui element se realizeaza la un singurcapat, denumitvarfulstivei. • Acest mod de functionare face ca ultimul element inserat in stivasa fie primul extras. Din acestmotiv,stivaestedefinita ca o structura de date care functioneazadupaprincipiulLIFO(Last In First Out – UltimulIntratPrimulIesit).
Operatiicaracteristice -Inserareaunui element in listasauoperatia PUSH. -Eliminareaunui element din listasauoperatia POP. -Accesareaelementului din varfsauoperatia TOP.
Care esteutilitateastivelor? • In informaticastivajoaca un rol fundamental. Pentru a intelegemecanismefundamentale ale programariiestenecesaracunoastereauneinotiuni de stiva. Pescurt, stivaesteutila in situatii in care estenecesaramemorareaunorinformatiisiregasireaacestoraintr-o anumitaordine, descrisa de principiulLIFO.
Cum implementam o stiva? • Stivaeste o structura de date abstracta, cepoatefiimplementata in diferitemoduri. De exempluputemimplementa o stiva ca un vector in care retinemelementelestivei. Pentru ca acest vector safunctioneze ca o stiva, singureleoperatiipermisesuntoperatiilecaracteristicestivei.
Creareauneistive vide • Pentru a crea o stivavidainitializamvarfulstivei cu -1 (varfulstiveiindicaintotdeaunapozitiaultimului element introdus in stiva; elementelesuntmemorate in vector incepand cu pozitia 0).
Inserareaunui element in stiva • Pentru a insera un element in stiva S trebuiesaverificam in primul rand daca “avem loc”, decidacastiva nu esteplina. Dacastivaesteplina, inserarea nu se poate face, altfelvommarivarfulstiveisivomplasa la varfnoul element. • De exemplu, dacadorimsainseramelementul x=3 in stiva din figuraurmatoare, obtinem:
Extragereaunui element din stiva • Pentru a extrage un element dintr-o stiva S trebuiesaverificam in primul rand dacaexistaelemente in stiva (decidacastiva nu estevida). Dacada, retinemelementul de la varfulstiveiintr-o variabila, dupa care micsoram cu o unitatevarfulstivei. • De exemplu, dacaextragem un element din stiva din figuraurmatoare, obtinem :
Accesareaelementului de la varf • Prinmodulsaurestrictiv de functionare, stivapermitenumaiaccesareaelementului de la varf. Dacadorimsaaflamvaloareaunui alt element al stivei, artrebuisa “golim” stiva (decisaextragemsuccesivelemente) pana la elementuldorit. Accesareaelementului de la varfpresupunedeterminareavaloriiacestuiam, valoarepe care noi o vomretineintr-o variabiladenumita x.
Observatii • Dezavantajulimplementariiuneistive ca vector alocat static consta in faptul ca indiferent de numarul de elementeexistente in stiva, dimensiuneazonei de memoriealocatastiveiesteaceeasi (DimMax). • Pentru a executaoperatii cu stivaalocata static estesuficientsacunoastemvarfulstivei.Casaretinemmaiusormodul de functionare a stivei, ne imaginam ca la inserarevarfulstiveiurca, iar la extragerevarfulcoboara.