Gyakorlati alapok III.
Az adatszerkezetek - Sor és verem
Sor (queue)
A szekvencialitás legtipikusabb tárolója, hiszen szerkezete optimális a sorrendben érkező adatok feldolgozásához. Működési elve FIFO, azaz First In First Out.
Műveletei:
-
put - elem betevése a sor végére,
-
get - elem kivétele a sor elejéről,
-
first - 1. elem lekérdezése (a sor változtatása nélkül).
Forrás - Source: Gábor Dénes Főiskola
Nyilvánvalóan a put művelet alkalmazása nem lehetséges a végtelenségig a véges számú memóriamennyiség miatt. (Azaz a sortároló mérete mindig korlátozott.) A maximum elérésekor kénytelenek vagyunk a következő elemet a sor elejére tenni. Ezt a sortárolási módot ciklikus tárolásnak nevezzük.
A sor alkalmazása rendkívül széleskörű. Életünkből rengeteg gyakorlati példát tudunk mondani egyszerű, szekvenciális folyamatokra. Programozás-technikailag is tipikus a használata, gondoljunk például a nyomtatási sorra, amelynek kötelezően sorszekvenciát kell tartalmaznia.
Verem (stack)
Amint a nevéből is kiderül, a verembe legelőször betett adat kerül fokozatosan legalulra, tehát a legnehezebb onnan előbányászni. Következésképpen mindig a legfelső elem a legfrissebb, egyedül azt lehet látni, ami azt jelenti, hogy a veremmutató kizárólag arra a memóriacímre mutat. Működési elve LIFO, azaz Last In First Out.
Műveletei:
-
push - elem betevése a legfelső veremhelyre,
-
pop - elem kivétele a legfelső veremhelyről,
-
top - legfelső veremelem lekérdezése (a verem változtatása nélkül).
Forrás - Source: Gábor Dénes Főiskola
Legtipikusabb alkalmazása a műveleti memóriában történik, ahol a gyakran visszatérő, illetve visszalépéses memóriacímek-folyamatok, valamint gyakori felhasználású, lokális változók tárolószerkezete. Gondoljunk csak arra a gyakran alkalmazott programlehetőségre, amely során visszavonhatjuk a már egyszer kiadott műveleteket. Ekkor programozás-technikailag legcélszerűbb verem-szerkezetet használnunk, hiszen a műveletek visszatérési útja ugyanaz lesz, mint a már egyszer kiadott műveletsor.