Stack vs Queue
A verem egy rendezett lista, amelyben a listaelemek beszúrása és törlése csak az egyik végén, a tetején végezhető el. Emiatt a verem a Last in First out (LIFO) adatszerkezetnek minősül. A Queue egy rendezett lista is, amelyben a listaelemek beszúrása az egyik végén, a hátsóban, az elemek törlése pedig a másik végén, az elülsőben történik. Ez a beillesztési és törlési mechanizmus FIFO (First in First Out) adatstruktúrává teszi a sort.
Mi az a Stack?
Amint korábban említettük, a verem egy olyan adatstruktúra, amelyben az elemeket csak az egyik végéről, a tetejéről adják hozzá és távolítják el. A veremek csak két alapvető műveletet tesznek lehetővé, amelyeket push-nak és pop-nak neveznek. A push művelet egy új elemet ad a verem tetejére. A pop művelet eltávolít egy elemet a verem tetejéről. Ha a verem már megtelt, akkor a push művelet végrehajtásakor verem túlcsordulásnak minősül. Ha egy pop műveletet hajtanak végre egy már üres veremen, az verem alulcsordulásnak minősül. A veremen végrehajtható műveletek kis száma miatt korlátozott adatszerkezetnek tekinthető. Ezen túlmenően, a push és pop műveletek meghatározásának módja szerint egyértelmű, hogy a verembe utoljára hozzáadott elemek először kerülnek ki a veremből. Ezért a verem LIFO adatszerkezetnek minősül.
Mi az a sor?
A várólistában az elemek a sor hátuljáról kerülnek hozzáadásra, és a sor elejéről kerülnek eltávolításra. Mivel az elsőként hozzáadott elemeket a rendszer először eltávolítja a sorból, fenntartja a FIFO sorrendet. Az elemek hozzáadásának és eltávolításának ilyen sorrendje miatt a várólista egy pénztári vonal ötletét jelenti. A sor által támogatott általános műveletek a sorba állítás és a sor eltávolítása műveletek. Az En-queue művelet hozzáad egy elemet a sor hátuljához, míg a sor feloldása művelet eltávolít egy elemet a sor elejéről. Általánosságban elmondható, hogy a sorokban a memóriakorlátokon kívül nincs korlátozva a sorhoz hozzáadható elemek száma.
Mi a különbség a Stack és a Queue között?
Annak ellenére, hogy mind a veremek, mind a sorok rendezett listák, van néhány fontos különbség. Veremben az elemek hozzáadása vagy törlése csak az egyik végéről, a legfelsőről, a sorokban az egyik végéről, a hátsóról, az elemek törlése pedig a másik végéről, az elejéről történik. Egy veremben a veremhez utolsóként hozzáadott elemek kerülnek először a veremből. Ezért a verem LIFO adatszerkezetnek tekinthető. A sorokban az elsőként hozzáadott elemek kerülnek először a sorból. Ezért a sor FIFO adatszerkezetnek minősül.
Kapcsolódó link:
Különbség a verem és a kupac között