Először is megnézzük mi az a verem és mi az a sor egyénileg, majd megbeszéljük a verem és a sor közötti különbségeket.
Mi az a verem?
Egy adatstruktúra. Tömb esetén véletlenszerű hozzáférés lehetséges, azaz egy tömb bármely eleme bármikor elérhető, míg veremben csak szekvenciális hozzáférés lehetséges. Ez egy tároló, amely követi a beillesztési és törlési szabályt. Az elvet követi LIFO (Last In First Out) amelyben az inszerció és a deléció az a. néven ismert egyik oldalról történik tetejére . A veremben hasonló adattípusú elemeket is beilleszthetünk, azaz a különböző adattípusú elemek nem illeszthetők be ugyanabba a verembe. A két műveletet LIFO-ban hajtják végre, azaz nyom és pop művelet.
A következő műveletek végezhetők el a veremen:
A veremben a tetejére egy mutató, amely az utoljára beillesztett elem nyomon követésére szolgál. A verem megvalósításához ismernünk kell a verem méretét. Le kell foglalnunk a memóriát, hogy megkapjuk a verem méretét. A verem megvalósításának két módja van:
Mi a Várólista?
A
Hasonlóságok a verem és a sor között.
Két hasonlóság van a verem és a sor között:
Mind a verem, mind a sor a lineáris adatstruktúra, ami azt jelenti, hogy az elemek egymás után kerülnek tárolásra, és egyetlen futással érhetők el.
Mind a verem, mind a sor rugalmas méretű, ami azt jelenti, hogy a futásidőben a követelményeknek megfelelően növekedhetnek és csökkenhetnek.
A verem és a sor közötti különbségek
A verem és a sor közötti különbségek a következők:
Összehasonlítási alap | Kazal | Sor |
---|---|---|
Elv | Ez a LIFO (Last In- First Out) elvet követi, ami azt jelenti, hogy az utolsóként beszúrt elem lesz az első, amelyet törölni kell. | Ez a FIFO (First In -First Out) elvet követi, ami azt jelenti, hogy az elsőként hozzáadott elem lesz az első elem, amely eltávolításra kerül a listából. |
Szerkezet | Csak egy vége van, ahonnan a beillesztés és a törlés is megtörténik, és ezt a végét felsőnek nevezik. | Két vége van, azaz elülső és hátsó. Az elülső részt a törléshez, míg a hátsó részt a beillesztéshez használják. |
A használt mutatók száma | Csak egy felső mutatóként ismert mutatót tartalmaz. A felső mutató az utoljára beszúrt vagy a verem legfelső elemének címét tartalmazza. | Két mutatót tartalmaz elöl és hátul. Az elülső mutató az első elem címét, míg a hátsó mutató a sor utolsó elemének címét tartalmazza. |
Elvégzett műveletek | Két műveletet hajt végre, push és pop. A push művelet beszúrja az elemet a listába, míg a pop művelet eltávolítja az elemet a listából. | Főleg két műveletet hajt végre, a sorbaállítást és a dequeue-t. A sorbaállítási művelet az elemek beillesztését végzi a sorba, míg a dequeue művelet az elemek törlését a sorból. |
Az üres állapot vizsgálata | Ha top==-1, ami azt jelenti, hogy a verem üres. | Ha front== -1 vagy front = rear+1, ami azt jelenti, hogy a sor üres. |
Teljes állapot vizsgálata | Ha top== max-1, ez a feltétel azt jelenti, hogy a verem megtelt. | Ha hátsó==max-1, ez a feltétel azt jelenti, hogy a verem megtelt. |
Változatok | Nincsenek típusai. | Három típusa van, például prioritási sor, körkörös sor és kétvégű sor. |
Végrehajtás | Ennek egyszerűbb megvalósítása van. | Viszonylag összetett megvalósítása van, mint egy veremnek. |
Megjelenítés | A verem függőleges gyűjteményként jelenik meg. | A várólista vízszintes gyűjteményként jelenik meg. |